楼主:
shala (沙罗)
2019-01-16 14:42:26我有一些文字档,里面都是中文字
每个档案大约都有100万行
想要把内容全部转成UNICODE的HEX
例如“中”变成“4E2D”
这个转换不困难,但行数高达100万行左右
是否有每个档案能在10秒内完成转换的高效率程式?
作者:
spfy (spfy)
2019-01-16 15:19:0010s连档案都还没读完吧?
转换完放在RAM跟还要存到硬盘内也不一样不对啊,你文字档原始的编码格式是啥?
作者:
enthos (影斯作业系统)
2019-01-16 15:56:00www.di-mgt.com.au/hexdump-for-windows.html
你是要给人看而不是程式要使用的话,notepad++就有HEX-EDITOR这个外挂模组了,或者使用UltraEdit这类编辑器应该说所有文字编辑器,支援HEX MODE都可以用给其他程式用,不需要转啊,程式只要可以读档案,直接开档起来不就是你要的答案了?QQ
感觉就是其他程式不是原PO开发的 且只吃HEX自己写程式最快啦 这么单一又大量的功能 值得写程式
还是不太了解,我从文意推测你是用Windows,假设今天你开了一个记事本,输入“中”后存盘,编码选unicode,实际储存的资料就是4Bytes: 0xFF 0xFE 0x2D 0x4E那你希望的这个程式,转换完以后档案的raw data是啥呢?Hex: FF FE 34 00 45 00 32 00 44 00 共10Bytes?
每行100中文字 一百万行 python3.7+ramdisk 40秒
所以4E2D存盘要用什么编码?一样Windows上所谓的unicode(UCS-2-LE)吗?还是需要再转其他编码?这会影响速度能不能传个范例档来测试测试XD
扣除BOM,档案大小应该会变4倍所以你要喂的那个程式,确定可以吃多种编码格式?你的需求,转换后若用UTF-8,撇开Windows会加BOM来看,跟用ASCII编码是一样的大小,也与来源档大小相同
作者:
xvid (DivX)
2019-01-17 10:41:00未实测速度 Akelpad + HexSel plugin刚实测一下有点lag
Mapping table只需要一个型别uint16_t 大小256的阵列吧?然后前面讲错,依原PO需求的UCS-2转UTF-8大小变2倍才对
作者: netio (新中间选民) 2019-01-18 16:09:00
效率提升的问题应该是因为python本身就不是让你拼速度
作者: netio (新中间选民) 2019-01-18 17:42:00
内定就是不转换了 还是你要多个选项?不支持Utf8喔
你是要存成 source code 喔?vim 的 xxd -i