2009-10-23 24 views
8

Tôi đang cố gắng tạo mã QR UTF-8 để tôi có thể mã hóa dấu trọng âm và ký tự Unicode.Unicode Sự cố mã hóa và giải mã trong QRCode

Để kiểm tra nó, tôi đang sử dụng nhiều giải pháp giải mã:

  1. http://zxing.org/w/decode.jspx - Dự án ZXing cũng được sử dụng trong Android
  2. http://www.drhu.org/QRCode/QRDecoder.php - một Decoder PHP
  3. http://zbar.sf.net - Các ZBar mã vạch đọc - OpenSource và dự án C để nhúng

Tất cả đều cho tôi kết quả tương tự.

Bạn có thể thử this image works well with Ký tự Unicode.

Nhưng nếu tôi đang cố gắng sử dụng API biểu đồ zxing hoặc Google để tạo QRCode, tôi không thể giải mã chính xác.

Tôi đã thử này:

  1. http://chart.apis.google.com/chart?cht=qr&chs=200x200&choe=SHIFT_JIS&chl=R%C3%A9my+Hubscher
  2. http://chart.apis.google.com/chart?cht=qr&chs=200x200&choe=ISO-8859-1&chl=R%C3%A9my+Hubscher
  3. http://chart.apis.google.com/chart?cht=qr&chs=200x200&choe=UTF-8&chl=R%C3%A9my+Hubscher

Nhưng tất cả không thành công.

Bạn có biết tôi có thể làm gì không? Bạn có biết mã hóa nào được sử dụng cho hình ảnh hoạt động không?

Trả lời

10

Giải pháp xuất hiện, là mã hóa văn bản trong UTF-8 và thêm BOM để xác định rằng chuỗi đó thực sự là UTF-8.

Ở đây nó hoạt động:

+1

Ông có thể vui lòng giải thích chính xác những gì bạn đã làm gì để giải quyết nó? –

+0

Bạn phải thêm BOM: http://en.wikipedia.org/wiki/Byte_order_mark. Chỉ cần in '' \ xEF \ xBB \ xBF'' trước chuỗi của bạn. – Natim

+0

Ý bạn là như thế này? NSString * qrString = [Chuỗi ký tự kết nốiWithFormat: @ "\ xEF \ xBB \ xBF% @", symbol.data]; symbol.data là chuỗi mà ZBar SDK cung cấp sau khi quét. Điều này không hiệu quả đối với tôi bằng cách này. –