标题: [文本处理] 批处理如何处理HTML转义符? [打印本页]
作者: icemage 时间: 2015-3-25 15:24 标题: 批处理如何处理HTML转义符?
我手上有一个纯文本的数据库,大概几十万条,里面有大量HTML转义符,比如Ι BAT能否将这些转义符替换成正常的文本呢?
作者: CrLf 时间: 2015-3-25 15:36
http://www.bathome.net/viewthread.php?tid=24720
作者: icemage 时间: 2015-3-25 17:37
CrLf 发表于 2015-3-25 15:36
非常感谢此工具,我试了下,这个貌似只能decode纯的NCR,如果是正常文本夹杂着NCR就没有办法了吧。
作者: CrLf 时间: 2015-3-25 20:38
我试着可以哟- htmldecode "test婓bathome"
复制代码
输出 test婓bathome
作者: icemage 时间: 2015-3-26 11:33
我试着可以哟输出 test婓bathome
CrLf 发表于 2015-3-25 20:38
我发现是我的文件编码有问题,只有编码形式是ANSI的才能正常输出,但这种编码形式下很多其他字符就没办法正常显示了,比如®
htmldecode "testλ® "
输出 "testλ;?"
作者: CrLf 时间: 2015-3-26 14:10
是什么编码
可以用 utf-8试试
作者: icemage 时间: 2015-3-26 14:56
是什么编码
可以用 utf-8试试
CrLf 发表于 2015-3-26 14:10
原来是UCS-2 LE, 因为我最终要导入数据库,我试了换UTF-8,也一样,有些特殊字符已ANSI字符集生成新文件再转回原来的就回不去了。
作者: CrLf 时间: 2015-3-26 15:31
全都是 &#nnnn; 的形式还是也有 的呢?
如果只有前者就很容易了,要是还有后者就需要查表。
不过表可以动态生成 html 再获取 innerText,那晚上用 hta 给你写个
作者: icemage 时间: 2015-3-26 15:40
全都是 &#nnnn; 的形式还是也有 的呢?
如果只有前者就很容易了,要是还有后者就需要查表。
不过表 ...
CrLf 发表于 2015-3-26 15:31
都是&#nnnn;的形式,不过我的数据源很大,我都是截取一部分测试的,否则会出现memory limit reached的错误。
作者: CrLf 时间: 2015-3-27 04:10
不知道你实际的文件有多大...保险一点用 fso 吧,慢一点,不过一行一行读不会超内存
把你要处理的文件 test_in.txt 存为 Unicode 编码,再把以下脚本存为 js 运行即可- var fso = new ActiveXObject('Scripting.FileSystemObject')
-
- var IN = fso.OpenTextFile('test_in.txt',1,true,true)
- var OUT = fso.OpenTextFile('test_out.txt',2,true,true)
-
- while(!IN.atEndOfStream){
- var line = IN.ReadLine()
-
- line = line.replace(/&#(\d{1,5});/g,function($0,$1){
- return String.fromCharCode($1)
- })
- OUT.WriteLine(line)
- }
-
- IN.Close()
- OUT.Close()
复制代码
作者: icemage 时间: 2015-3-30 11:45
不知道你实际的文件有多大...保险一点用 fso 吧,慢一点,不过一行一行读不会超内存
把你要处理的文件 tes ...
CrLf 发表于 2015-3-27 04:10
it works, thanks!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |