我試圖向一個藍牙打印機發送一個十六進制命令。其中一個字符決定了我可以傳遞的數據的大小。該字符串是:由於輸入字節不屬於輸入代碼集而導致Objective-c輸入轉換停止UTF-8
@「\ X1D \ X28 \ X6B \ XFF \ X00 \ X31 \ X50 \ X30 \ X66 \ X61 \ X72 \ X74 \ X20 \ X70 \ x6f \ x6f \ X70 \ X79 \ X20 \ X66 \ X61 \ X72 \ X74 \ X20 \ X70 \ x6f \ x6f \ X70 \ X79 \ X20 \ X66 \ X61 \ X72 \ X74 \ X20 \ X70 \ x6f \ x6f \ X70 \ X79 \ X20 \ X66 \ X61 \ X72 \ X74 \ X20 \ X70 \ x6f \ x6f \ X70 \ X79 \ X20 \ X66 \ X61 \ X72 \ X74 \ X20 \ X70 \ x6f \ x6f \ X70 \ X79 \ X20 \ X66 \ X61 \ X72 \ X74 \ X20 \ X70 \ x6f \ x6f \ X70 \ X79 \ X20 \ X66 \ X61 \ X72 \ X74 \ X20 \ X70 \ x6f \ x6f \ X70 \ X79 \ X20 \ X66 \ X61 \ X72 \ X74 \ X20 \ X70 \ x6f \ x6f \ X70 \ X79 \ X20 \ X66 \ X61 \ X72 \ X74 \ X20 \ X70 \ x6f \ x6f \ X70 \ X79 \ X20 \ X66 \ X61 \ X72 \ X74 \ X20 \ X70 \ x6f \ x6f \ X70 \ X79 \ X20 \ X66 \ X61 \ X72 \ X74 \ X20 \ X70 \ x6f \ x6f \ X70 \ X79 \ X2E \ X2E \ X2E \ X2E」
我得到的稱號錯誤當我這樣做。原因是我傳遞了ff(第一行 - 16個字符),這是超出UTF-8的代碼集。如果我將它設置爲代碼集中的7f,則一切正常。
我試過幾種不同的東西,但我無法解決這個問題。
爲什麼不創建一個'NSData'對象而不是'NSString'?將字節打包爲數據會更好。 – rmaddy 2013-03-07 00:25:18
那麼你想要發送一個非UTF-8字符到只接受UTF-8的接口的問題呢? – danh 2013-03-07 00:27:52