1

ZBarSDK を使用して QR コードをスキャンする IOS アプリがあります。問題は、ドイツ語の文字を含むコードをスキャンしようとすると、アプリで日本語として表示されることです。

例: - Einsteinstraße 54 81675 München/Germany を含むコードでは、ß と ü の代わりに日本語の文字が使用されます。

これを修正する方法はありますか?

PS Android Barcode Scannerを使用すると、適切に表示されます。

私のコード:

-(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...
}

[記号データ] には既にドイツ語の代わりに日本語の文字が含まれています。

4

1 に答える 1

0

私は同じ問題を抱えていました、私はそれを解決しました:

NSString* barcode = symbol.data; 

if ([barcode canBeConvertedToEncoding:NSShiftJISStringEncoding]) { 
    barcode = [NSString stringWithCString:[barcode cStringUsingEncoding: NSShiftJISStringEncoding] encoding:NSUTF8StringEncoding]; 
}

それはあなたのために働くかもしれません。

于 2012-09-11T15:09:16.597 に答える