iOS: caracteres unicode do ZBar SDK
Ao escanear códigos QR com ZBar, a string resultante do processo não exibe os caracteres unicode corretamente. A palavraMárti codificado como um código QR por qualquer livre para usar gerador de código QR (comohttp://qrcode.kaywa.com) resultaria emM テ 。rti.
Em outras questões do SO (1, 2) foi sugerido incorporar uma BOM no início da string resultante, mas fazendo isso:
NSString *qrString = [NSString stringWithFormat:@"\xEF\xBB\xBF%@",symbol.data];
ou isto:
NSString *qrString = [[NSString alloc] initWithFormat:@"\357\273\277%@", symbol.data];
resultou no mesmo resultado falho do personagem asiático.symbol.data
é a NSString resultante fornecida pelo ZBar.
ATUALIZAÇÃO: Com base na resposta da dda, a solução foi a seguinte:
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];
}