如何使用星形微米线打印€符号?

时间:2018-05-17 15:46:22

标签: ios objective-c printers

我有星微米,我在我的应用程序中实现SDK,但我不能打印€符号

[mutableData appendData:[@"\x1b\x1d\x74\x04 123" dataUsingEncoding:NSMacOSRomanStringEncoding allowLossyConversion:YES]];

但打印其他角色

也可以尝试使用

 [mutableData appendData:[@"\xE2\x82\xac\r\n 123" dataUsingEncoding: NSUTF8StringEncoding allowLossyConversion:YES]];

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

2 个答案:

答案 0 :(得分:1)

这可以解决问题:

builder是您的 ISCBBuilder 变量。

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

答案 1 :(得分:0)

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),尽管here in the table您仍然可以在代码219下看到它。