我試圖將數據打印到藍牙打印機。爲了做到這一點,我需要發送十六進制到打印機。我已經通過發送諸如如何將 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