时间:2019-05-09 标签:c#qr条码读取(unicode)

标签 c# .net console qr-code ironbarcode

我正在尝试使用 IronBarcode 在 .net 中创建 QR 条码.
我正在关注他们编写二进制数据的教程,但它不适用于阿拉伯文本。它适用于英语,但对于阿拉伯语,控制台输出为“?????”。我尝试过 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 '?????'
请有人告诉我我缺少什么吗?

最佳答案

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;

关于时间:2019-05-09 标签:c#qr条码读取(unicode),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69834623/

相关文章:

c# - 如何使用 Mono.Zeroconf 制作 AirPlay 接收器

c# - 有什么建议我怎样才能做得更好?

.net - 在单元测试中修改应用程序设置

c# - 结合两个相对的 Uris

c# - Entity Framework : Manually setting entity state reverting values

ruby-on-rails - rails console - 在表格中显示事件记录结果

.htaccess - 如何隐藏所有控制台错误

c# - Visual Studio 测试项目启动事件?

c# - 快速设置 DataGridView 行高

c# - C#中简单的DES ECB加解密