我有使用ZBarSDK扫描QR码的IOS应用程序。问题是当我尝试使用德语字符扫描代码时,它们在应用程序中显示为日语。
例如:代码包含 - 爱因斯坦大街54号 81675慕尼黑/德国将有日语字符而不是ß和ü。
任何想法如何解决这个问题?
P.S。使用安卓条形码扫描仪它似乎是正确的。
我的代码:
-(IBAction)StartScan:(id) sender
{
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.readerView.torchMode = 0;
reader.tracksSymbols = YES;
ZBarImageScanner *scanner = reader.scanner;
[scanner setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0];
[self presentModalViewController: reader
animated: YES];
scanner = nil;
}
和
- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
{
id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results) {
self.hiddenData=[NSString stringWithString:symbol.data];
NSLog(@"SymbolData: %@", [symbol data]);
}
resultTextView.text=symbol.data;
NSUserDefaults *storeData=[NSUserDefaults standardUserDefaults];
[storeData setObject:self.hiddenData forKey:@"CONSUMERID"];
NSLog(@"SYMBOL : %@",self.hiddenData);
//rest of code...
}
[符号数据]包含日语字符而不是德语。
答案 0 :(得分:0)
我有同样的问题,我解决了它:
NSString* barcode = symbol.data;
if ([barcode canBeConvertedToEncoding:NSShiftJISStringEncoding]) {
barcode = [NSString stringWithCString:[barcode cStringUsingEncoding: NSShiftJISStringEncoding] encoding:NSUTF8StringEncoding];
}
Maby它适合你。