我试图将数据打印到蓝牙打印机。为了做到这一点,我需要发送十六进制到打印机。我已经通过发送诸如如何将 x插入到NSString对象中
命令已成功这样做@ “\ X1B \ x7b \ X01” @ “\ X1B \ x7b \ X00”
这些都是静态的命令。我现在需要获取一些数据,一个NSString,将其转换为十六进制,然后将其发送到打印机。我尝试了几种不同的方式,其中大部分来自本网站,但无法使其工作。
我知道这不工作,但我想做到以下几点:
for(NSUInteger i = 0; i < [str length]; i++)
{
[hexString appendString:[NSString stringWithFormat:@"\x%@",[str characterAtIndex:i]]];
}
-
- 比特产是我试图创建并返回的字符串。 str是我想要变成十六进制的字符串。例如,11111111或abcdefg。
我已经尝试了各种各样的事情都没有运气。
任何帮助将不胜感激!
这将创建一个包含反斜杠的字符串,一个X ,后面跟着一个字符串,但OP的原始代码例如'@“\ x1b \ x7b \ x00”'应该只包含三个字节,转义字节(\ x1b或\ 033或ASCII码27),一个命令字节和一个参数字节(我假设)。我不认为打印机正在期待这些字节的十六进制表示,我认为它本身就是实际的字节。如果是这种情况,'NSString'是错误的类。 – dreamlax 2013-03-07 01:07:54
问题是如何创建一个像“@”\ x1b \ x7b \ x00“'这样的字符串,而不是在这种情况下是否使用'NSString'。 – Sebastian 2013-03-07 01:16:03
而您的解决方案不起作用。它创建相当于'@“\\ x ...”'不''“\ x ...”'。字符串不匹配。你的代码会在结果字符串中产生一个实际的反斜杠,而他的字符串'@“\ x1B \ x7B \ x00”'根本没有反斜杠。 – dreamlax 2013-03-07 01:50:49