我正在嘗試使用IronBarcode在 .net 中創建一個二維碼。我正在按照他們的教程撰寫二進制資料,但它不適用于阿拉伯文本。它適用于英語,但對于阿拉伯語,控制臺輸出為“???????????????????”。我嘗試過 UTF8、UTF7,但沒有任何效果。 https://ironsoftware.com/csharp/barcode/tutorials/csharp-qr-code-generator/#reading-and-writing-binary-data
我的代碼是:
using IronBarCode;
var Msg = "?????";
byte[] BinaryData = System.Text.Encoding.UTF8.GetBytes(Msg);
var bitmap = IronBarCode.QRCodeWriter.CreateQrCode(BinaryData,500, IronBarCode.QRCodeWriter.QrErrorCorrectionLevel.Highest).ToBitmap();
var barcodeResult = IronBarCode.BarcodeReader.ReadASingleBarcode(bitmap);
var stringResult = System.Text.Encoding.UTF8.GetString(barcodeResult.BinaryValue);
Console.WriteLine(stringResult) // outputs '?????'
請有人建議我缺少什么嗎?
uj5u.com熱心網友回復:
var Msg = "??? ?? ????";
byte[] BinaryData = System.Text.Encoding.UTF8.GetBytes(Msg);
var bitmap = IronBarCode.QRCodeWriter.CreateQrCode(BinaryData, 500, IronBarCode.QRCodeWriter.QrErrorCorrectionLevel.Highest).ToBitmap();
var barcodeResult = IronBarCode.BarcodeReader.ReadASingleBarcode(bitmap);
var stringResult =
System.Text.Encoding.UTF8.GetString(barcodeResult.BinaryValue);
// stringResult is "??? ?? ????"
您看到的問題是 Console.WriteLine 不支持 Visual Studio 中的阿拉伯字符。它列印“?????” 對于所有非羅馬字符。
您可以通過保存到檔案或在 Visual Studio 中放置除錯斷點并將滑鼠懸停在變數上來驗證正確的結果。
該視頻解釋了該問題,并提供了解決方法:https : //m.youtube.com/watch?v=rTqBnJ8HrSc
Console.OutputEncoding = System.Text.Encoding.Unicode;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/347533.html
上一篇:我想回圈顯示串列項的索引
