2014-09-21 4 views
0

안녕하세요 나는 다시 예를 들어 영어하지만, 매우 잘 작동디코드 영어 이외의 텍스트

 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; 

Spire.Barcode 라이브러리를 사용하여 바코드를 생성하는 간단한 예제를 가지고 그것을 디코딩 아랍어를 사용할 때 출력이 이와 같이 나타납니다.

Barcode output for Arabic

는이 문제를 해결하려면 어쨌든 있나요?

미리 감사드립니다.

+0

그것은 당신의'BarcodeScanner'에 따라 달라집니다. – AgentFire

답변

0

당신은 당신의 프로젝트에 코드 아래 사용할 수 있습니다

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; 
     } 
관련 문제