我有一个热敏打印机的套接字连接,我可以读取txt文件的内容并将其写入套接字。我的问题是此文件包含作为POS POS命令的十六进制值的混合。即
1x product 0x0A 0x0A
(0x0A代表特定的ESC POS命令)。
我想在Swift中将文本文件转换为Node JS样式的Buffer数据类型。我尝试过将文件转换为数据类型,但是没有运气。
let binary = Data([0x1b, 0x64, 0x04, 0x1b, 0x64, 0x04, 0x1d, 0x56,
0x00, 0x1b, 0x40])
# Returns 11 Bytes
let content = "0x1b, 0x64, 0x04, 0x1b, 0x64, 0x04, 0x1d, 0x56, 0x00,
0x1b, 0x40".data(using: .utf8)
# Returns Optional(64 bytes)
如何将内容转换为与二进制相同的类型?
答案 0 :(得分:0)
将字符串转换为字节将执行以下步骤:
0x
前缀UInt8
s UInt8
的数组转换为Data
:代码如下:
let content = "0x1b, 0x64, 0x04, 0x1b, 0x64, 0x04, 0x1d, 0x56, 0x00, 0x1b, 0x40"
let bytes = content.components(separatedBy: ", ") // step 1
.map { UInt8($0.dropFirst(2) /* step 2*/, radix: 16)! /* step 3 */ }
let data = Data.init(bytes) // step 4
print(data)