fengyunyu 发表于 2019-4-30 20:24:27

求一个utf8格式文本文件转bin的小程序或python脚本

如题,多谢!

fengyunyu 发表于 2019-4-30 22:20:57

文本文件结构:
1,张三,1200
2,李四,1500

wx85105157 发表于 2019-4-30 22:57:30

bin的格式呢?

t3486784401 发表于 2019-5-1 00:09:36

是要转成 C 数组代码吧,记事本 + WinHex 就搞定了

fengyunyu 发表于 2019-5-1 06:46:32

wx85105157 发表于 2019-4-30 22:57
bin的格式呢?

1,张三,1200就依次转为0x01、0x00(1的编码),XX、XX、XX、XX、XX、XX(张三的utf8编码),0x4b、0x00(1200的编码)

fengyunyu 发表于 2019-5-1 06:47:15

t3486784401 发表于 2019-5-1 00:09
是要转成 C 数组代码吧,记事本 + WinHex 就搞定了

指点下如何处理?

icoyool 发表于 2019-5-1 08:34:42

python
bytes("来一发","utf-8"), 一百拿来

dreambox 发表于 2019-5-1 10:42:29

这个简单,如楼上,再加上文件读写就OK啦

leon...... 发表于 2019-4-30 20:24:28

fengyunyu 发表于 2019-5-1 06:46
1,张三,1200就依次转为0x01、0x00(1的编码),XX、XX、XX、XX、XX、XX(张三的utf8编码),0x4b、0x00 ...

水平有限,看看是否你要的结果:

1,张三,1200

['1', '张三', '1200']
0x31;0xe5,0xbc,0xa0,0xe4,0xb8,0x89;0x31,0x32,0x30,0x30

2,李四,1500

['2', '李四', '1500']
0x32;0xe6,0x9d,0x8e,0xe5,0x9b,0x9b;0x31,0x35,0x30,0x30



if __name__ == '__main__':
    filename = 'test.txt'

    save = open('save.txt', 'w') # save.txt是转换之后的utf-8文件
    try:
      with open(filename, 'r') as file:    # sec.txt是以Unicode编码的文件,不限于txt格式
            for line in file:
                print(line)
                line = line.replace('\r\n', '')
                line = line.replace('\n', '')
                line = line.replace(' ', '')

                fields = line.split(',')
                print(fields)

                str_x = ''
                for x in fields:
                  xe = x.encode('utf-8')
                  # print(xe)
                  str_y = ''
                  for y in xe:
                        str_y = str_y + ',' + str(hex(y)[:])
                  # print(str_y)
                  str_x += (';' + str_y)

                print(str_x,'\n')
                save.writelines(str_x + '\r\n')
    finally:
      save.close()
页: [1]
查看完整版本: 求一个utf8格式文本文件转bin的小程序或python脚本