iOS: символы Unicode ZBar SDK
При сканировании QR-кодов с помощью ZBar строка, полученная в результате процесса, не отображает символы Юникода должным образом. СловоMarti закодированный в виде QR-кода любым бесплатным генератором QR-кодов (например,http://qrcode.kaywa.com) приведет кM テ .rti.
В других ТАК вопросах (1, 2) было предложено встроить спецификацию в начало полученной строки, но сделав это:
NSString *qrString = [NSString stringWithFormat:@"\xEF\xBB\xBF%@",symbol.data];
или это:
NSString *qrString = [[NSString alloc] initWithFormat:@"\357\273\277%@", symbol.data];
привели к тому же, ущербный результат с азиатским характером.symbol.data
результирующая строка NSString, предоставленная ZBar.
ОБНОВЛЕНИЕ: Основываясь на ответе 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];
}