Board logo

标题: [文本处理] 批处理如何处理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

我试着可以哟
  1. 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 运行即可
  1. var fso = new ActiveXObject('Scripting.FileSystemObject')
  2. var IN = fso.OpenTextFile('test_in.txt',1,true,true)
  3. var OUT = fso.OpenTextFile('test_out.txt',2,true,true)
  4. while(!IN.atEndOfStream){
  5. var line = IN.ReadLine()
  6. line = line.replace(/&#(\d{1,5});/g,function($0,$1){
  7. return String.fromCharCode($1)
  8. })
  9. OUT.WriteLine(line)
  10. }
  11. IN.Close()
  12. 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