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

Dan*_*son 3 printing encoding objective-c utf-8

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

这是我的代码:

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

[commands appendData:[@"\nåäö\n" dataUsingEncoding:NSWindowsCP1252StringEncoding]];
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*n R 6

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

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