如何使用UTF-8字符串打印NSData

时间:2013-03-29 09:43:04

标签: objective-c encoding printing utf-8

我有一台Star Micronics SM-S220i蓝牙打印机。我用它来打印我的iPad应用程序的收据。我不能像åäö那样使用UTF-8字符来工作。

这是我的代码:

NSMutableData *commands = [[NSMutableData alloc] init];

[commands appendData:[@"\nåäö\n" dataUsingEncoding:NSWindowsCP1252StringEncoding]];

使用此编码时,它会在DOS字符中打印åä。

2 个答案:

答案 0 :(得分:6)

如果转换为CP1292的“å”打印为“σ”,则打印机可能需要CP437编码中的数据。 CP437可用作kCFStringEncodingDOSLatinUS,可以转换为NSString编码:

NSMutableData *commands = [[NSMutableData alloc] init];
NSStringEncoding cp437 = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSLatinUS);
[commands appendData:[@"\nåäö\n" dataUsingEncoding:cp437]];

答案 1 :(得分:2)

尝试使用其他编码,例如:

[commands appendData:[@"\nåäö\n" dataUsingEncoding:NSUTF8StringEncoding]];