您好,我有一个生成条形码并使用Spire.Barcode库再次对其进行解码的简单示例
BarcodeSettings bcsettings = new BarcodeSettings();
bcsettings.Data = "مرحباً";
bcsettings.Type = BarCodeType.DataMatrix;
BarCodeGenerator bcgen = new BarCodeGenerator(bcsettings);
System.Drawing.Image bcimg = bcgen.GenerateImage();
System.Drawing.Bitmap bcbitmap = new System.Drawing.Bitmap(bcimg);
String bcdata = BarcodeScanner.ScanOne(bcbitmap);
output.Text += bcdata;
该示例非常适合英语,但是当我使用阿拉伯语时,输出显示如下。
有没有什么办法解决这一问题?
提前致谢。
您可以在项目中使用以下代码:
private void button1_Click(object sender, EventArgs e)
{
BarcodeSettings bcsettings = new BarcodeSettings();
bcsettings.Data = GetEncodingText("مرحباً");
bcsettings.Data2D =GetEncodingText( "مرحباً");
bcsettings.Type = BarCodeType.DataMatrix;
BarCodeGenerator bcgen = new BarCodeGenerator(bcsettings);
System.Drawing.Image bcimg = bcgen.GenerateImage();
System.Drawing.Bitmap bcbitmap = new System.Drawing.Bitmap(bcimg);
String bcdata = BarcodeScanner.ScanOne(bcbitmap);
output.Text += GetDecodingText(bcdata);
}
public string GetEncodingText(string unicodeStr)
{
string encodingResult = "";
byte[] byteArray = Encoding.Unicode.GetBytes(unicodeStr);
foreach (byte b in byteArray)
encodingResult += (char)b;
return encodingResult;
}
public string GetDecodingText(string unicodeStr)
{
string decodingResult = "";
List<byte> bytes = new List<byte>();
foreach (char c in unicodeStr)
bytes.Add((byte)c);
decodingResult = Encoding.Unicode.GetString(bytes.ToArray());
return decodingResult;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句