如何使用 star micronics 打印 € 符号?
how to print € symbol with star micronics?
我有 star micronics 并且我在我的应用程序中实现了 SDK,但是我无法打印 € 符号
[mutableData appendData:[@"\x1b\x1d\x74\x04 123" dataUsingEncoding:NSMacOSRomanStringEncoding allowLossyConversion:YES]];
但打印其他字符
也试试
[mutableData appendData:[@"\xE2\x82\xac\r\n 123" dataUsingEncoding: NSUTF8StringEncoding allowLossyConversion:YES]];
有人知道打印代码是什么吗?
Objective-C 中的 NSString 内部编码为 UTF-16,the euro symbol has code 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,那么可能不支持欧元符号(see this reply), although here in the table您仍然可以在代码219下看到它。
这样做就可以了:
builder 是您的 ISCBBuilder 变量。
builder.append(.CP858)
builder.appendByte(0xd5)
我有 star micronics 并且我在我的应用程序中实现了 SDK,但是我无法打印 € 符号
[mutableData appendData:[@"\x1b\x1d\x74\x04 123" dataUsingEncoding:NSMacOSRomanStringEncoding allowLossyConversion:YES]];
但打印其他字符
也试试
[mutableData appendData:[@"\xE2\x82\xac\r\n 123" dataUsingEncoding: NSUTF8StringEncoding allowLossyConversion:YES]];
有人知道打印代码是什么吗?
Objective-C 中的 NSString 内部编码为 UTF-16,the euro symbol has code 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,那么可能不支持欧元符号(see this reply), although here in the table您仍然可以在代码219下看到它。
这样做就可以了:
builder 是您的 ISCBBuilder 变量。
builder.append(.CP858)
builder.appendByte(0xd5)