Board logo

标题: [文本处理] 字符串转URL编码 [打印本页]

作者: tan1967    时间: 2013-4-29 23:10     标题: 字符串转URL编码

本帖最后由 pcl_test 于 2017-7-12 12:35 编辑

有个文本10W行文字转换网址URL编码格式保存另一个文本

你好你好          %E4%BD%A0%E5%A5%BD%E4%BD%A0%E5%A5%BD

很多工具一转就卡死不支持这么多行。求个高效率不卡死批处理
作者: CrLf    时间: 2013-4-30 04:32

转换格式需要用到第三方工具 iconv.exe,默认原始文件为带有文件头的 unicode 格式:
  1. @echo off
  2. more +5 %0 >gethex.com
  3. (iconv -f CSUNICODE -t utf-8 输入.txt|gethex.com %%)>输出.txt
  4. pause&exit/b
  5. RQPUWP]UZV_BBBB5``PY(E.(E3)E5)E:(E>)EFSX3CH<P}pE< ~r%ooQRY2AY0@G uG0EGB?
  6. KO00O0KNX01K91200JMJKN2OLN9J8NNKO0001KNp01K93030JMJKN2OLKN0001_]XYZN9N810
  7. 43020680008KN8t0M4M4MKN8200JL3M3K00t024N45K40KLM213L00t2KK4408KLM8KM6LM21
  8. K408LM218JM03L0Jt063L0Mt02NK05N82000NKMKRK104M2NJN80800ZN80400NKLMLM2080
  9. N20O80L23080OJ3J7L0380L207K402LM21L3
复制代码

作者: tmplinshi    时间: 2013-4-30 06:18

urlencode.exe (http://bathome.net/viewthread.php?tid=24065)
  1. urlencode < 输入.txt > 输出.txt
复制代码
默认情况下,回车换行会被替换为 %0D%0A。如果要输出多行,加上 -m 参数。
  1. urlencode -m < 输入.txt > 输出.txt
复制代码

作者: CrLf    时间: 2013-4-30 07:39

js 也挺方便,encodeURI 你懂得
保存代码到 test.js,拖动要处理的文件到 test.js 图标上开始执行:
  1. fso = new ActiveXObject("Scripting.FileSystemObject");
  2. ts = fso.OpenTextFile(WScript.Arguments(0),1);
  3. s = ts.ReadAll().replace(/\r\n/g,"\n");
  4. s = encodeURI(s).replace(/%0A/g,"\r\n");
  5. ts = fso.CreateTextFile(WScript.Arguments(0)+".txt",2);
  6. ts.Write(s);
复制代码

作者: Demon    时间: 2013-4-30 10:47

js 也挺方便,encodeURI 你懂得
保存代码到 test.js,拖动要处理的文件到 test.js 图标上开始执行:
CrLf 发表于 2013-4-30 07:39


encodeURI 你真的懂?
作者: tan1967    时间: 2013-4-30 11:34

4楼的比较方便好用几秒就搞定了
作者: CrLf    时间: 2013-4-30 13:19

本帖最后由 CrLf 于 2013-4-30 13:21 编辑

回复 5# Demon


    内涵,内涵~嗯嗯
    话说我更好奇为什么汇编会比 js 慢...换句话说,同为“脚本”宿主(扯个淡,比喻下),ntvdm 实际上还不如 wscript 有效率?什么情况
作者: Demon    时间: 2013-4-30 14:17

回复  Demon


    内涵,内涵~嗯嗯
    话说我更好奇为什么汇编会比 js 慢...换句话说,同为“脚本” ...
CrLf 发表于 2013-4-30 13:19


你不妨用32位汇编试试。
作者: CrLf    时间: 2013-4-30 14:38

回复 8# Demon


    32位汇编暂时还没接触,和16位很相似,但是东西多了不少,光文件头就让我搞不懂了,回头学习一下。
    ascode 后遗症:debug 用惯了,16位com就直接用它写,边写边调试...




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2