[请问] 有高效率将大量中文字串转成HEX的软

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

Links booklink

Contact Us: admin [ a t ] ucptt.com