如何使用星形微电子打印€符号



我有星形微电子和我在我的应用程序中实现SDK,但我无法打印€符号

[mutableData appendData:[@"x1bx1dx74x04 123" dataUsingEncoding:NSMacOSRomanStringEncoding allowLossyConversion:YES]];

但打印其他字符

也试试

[mutableData appendData:[@"xE2x82xacrn 123" dataUsingEncoding: NSUTF8StringEncoding allowLossyConversion:YES]];

有人知道打印它的代码是什么?

这将解决问题:

builder 是你的ISCBBuilder变量。

builder.append(.CP858)
builder.appendByte(0xd5)

Objective-C 中的 NSString 在内部编码为 UTF-16,欧元符号具有代码0x20AC。所以首先你需要像这样定义你的字符串:

NSString *euroSymbol1 = @"u20AC";
NSString *euroSymbol2 = @"€"; // same as euroSymbol1
if ([euroSymbol1 isEqualToString:euroSymbol2])
NSLog(@"equivalent"); // this is printed
NSString *price = [NSString stringWithFormat:@"%@ %.2f", euroSymbol1, 123.45];
NSLog(@"%@", price); // prints: "€ 123.45"

请注意,如果您只编写"€",编译器会明智地将源代码编码重新编码为 NSString 编码,因此阅读起来很简单。

然后,您需要了解打印机支持哪种编码。如果它支持 Unicode,您应该先尝试一下,因为它肯定包含欧元符号。请注意,整个mutableData必须使用相同的编码,因此,如果在此字符串之前附加了其他字符串,则需要确保所有字符串都使用相同的编码(例如 NSUTF8StringEncoding)。

如果您需要使用 NSMacOSRomanStringEncoding,则可能不支持欧元符号(请参阅此回复),尽管在表中您仍然可以在代码 219 下看到它。

最新更新