我想使用AVCaptureSession扫描QR码。在AVCaptureMetadataOutput的委托中,我可以获得名为qrCodeObject
的AVMetadataMachineReadableCodeObject并通过[qrCodeObject stringValue]
获取字符串。我想QR码的图像是用UTF8解码的,但如果QR码的串是其他编码,那就是乱码文本,比如Big5。
我试过了:
NSData *data = [qrCodeObject.stringValue dataUsingEncoding:NSUTF8StringEncoding];
NSStringEncoding encBig5 = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingBig5);
NSString *correctString = [[NSString alloc] initWithData:data encoding:encBig5];
NSLog(@"%@", correctString);
但它仍然是乱码。
我试过了:
NSStringEncoding encBig5 = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingBig5);
NSLog(@"%@ is ァAヲn", qrCodeObject.stringValue);
NSLog(@"%@ is <efbda741 efbda66e efbdb26e efbdb0ef bdb7>", [qrCodeObject.stringValue dataUsingEncoding:NSUTF8StringEncoding]);
NSLog(@"%@ is 嚚你嚚好嚚爽嚚堆蔆", [[NSString alloc] initWithData:[qrCodeObject.stringValue dataUsingEncoding:NSUTF8StringEncoding] encoding:encBig5]);
NSLog(@"%@ is (null)", [qrCodeObject.stringValue dataUsingEncoding:encBig5]);