2009-10-23 71 views
8

我正在嘗試生成UTF-8 QRCode,以便可以編碼重音和Unicode字符。QRCode中的Unicode編碼和解碼問題

爲了測試它,我使用的許多解碼解決方案:

  1. http://zxing.org/w/decode.jspx - 斑馬線項目也可用於Android的
  2. http://www.drhu.org/QRCode/QRDecoder.php - 一個PHP解碼器
  3. http://zbar.sf.net - 該zbar和條形碼閱讀器 - 開放源代碼和C嵌入項目

所有這些給我總是相同的結果。

您可以嘗試this image works well with Unicode字符。

但是,如果我想使用zxing或Google Chart API來生成QRCode,我無法正確解碼它。

我已經試過這樣:

  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

但均無功而返。

你知道我該怎麼辦?你知道哪個編碼用於工作圖像嗎?

回答

10

出現的解決方案是以UTF-8編碼文本並添加BOM以指定該字符串實際上是UTF-8。

這裏它的工作原理:

+1

能否請你解釋清楚你做了什麼來解決呢? –

+0

您必須添加物料清單:http://en.wikipedia.org/wiki/Byte_order_mark。只需在你的字符串前打印''\ xEF \ xBB \ xBF''。 – Natim

+0

您的意思是? NSString * qrString = [NSString stringWithFormat:@「\ xEF \ xBB \ xBF%@」,symbol.data]; symbol.data是ZBar SDK掃描後提供的字符串。 這不適合我的方式。 –