我需要在客户端为生成的文本数据添加UTF-8字节顺序标记.我怎么做?
当然,使用new Blob(['\xEF\xBB\xBF' + content])产量'"my data"'.
也没有'\uBBEF\x22BF'工作('\x22' == '"'成为下一个角色content).
是否可以将JavaScript中的UTF-8 BOM添加到生成的文本中?
是的,在这种情况下我确实需要UTF-8 BOM.
我正在尝试生成UTF-8 QRCode,以便我可以加载重音和Unicode字符.
为了测试它,我使用了许多解码解决方案:
所有这些都给了我相同的结果.
你可以试试这个图像适用于 Unicode字符.
但如果我尝试使用zxing或Google Chart API生成QRCode,我无法正确解码.
我试过这个:
但都没有成功.
你知道我怎么办吗?你知道哪个编码用于工作图像?
使用 ZBar 扫描 QR 码时,该过程产生的字符串无法正确显示 unicode 字符。任何免费使用的二维码生成器(如http://qrcode.kaywa.com)将单词Márti编码为二维码将导致M??rti。
在其他 SO 问题 ( 1 , 2 ) 中,建议在结果字符串的开头嵌入 BOM,但这样做:
NSString *qrString = [NSString stringWithFormat:@"\xEF\xBB\xBF%@",symbol.data];
Run Code Online (Sandbox Code Playgroud)
或这个:
NSString *qrString = [[NSString alloc] initWithFormat:@"\357\273\277%@", symbol.data];
Run Code Online (Sandbox Code Playgroud)
导致了与亚洲性格相同的、有缺陷的结果。symbol.data是由 ZBar 提供的结果 NSString。
更新:根据 dda 的回答,解决方案如下:
NSString *qrString = symbol.data;
//look for misinterpreted acute characters and convert them to UTF-8
if ([qrString canBeConvertedToEncoding:NSShiftJISStringEncoding]) {
qrString = [NSString stringWithCString:[symbol.data cStringUsingEncoding: NSShiftJISStringEncoding] encoding:NSUTF8StringEncoding];
}
Run Code Online (Sandbox Code Playgroud)