我想写一个文本纠正程序,问题来了,面对各种 txt,我怎样才能智能的识别各种编码?

2016-07-10 18:12:36 +08:00
 EnginDee

我想写一个文本纠正程序,问题来了,面对各种 txt ,我怎样才能智能的识别各种编码?

我的这个程序,就是简单调整有些下载的 txt ,有些被插入大量的换行符, 我的程序,就是把这些不该有的换行符删除。 纠正常见的基本错误。 这样阅读器打开文本,排版就正常一些了。

4026 次点击
所在节点    程序员
25 条回复
zouxy
2016-07-11 09:28:24 +08:00
我的思路:
1 )有 BOM 按 BOM 来。
2 )没 BOM 的情况下,按配置的次序(把最常用的放在前面)一个个检测合法性。
3 )合法的情况下,分析里边的词是不是真的词。另外一个比较简单但我觉得有效的办法,只统计字,如果转出来的结果都是生僻字就是转错了。这个简单办法我之前自己写的过滤垃圾短信相当有效果,常用汉字就 3000 多个。
4 )有一部分仍然是错的,就用其它高级一点的办法。如果要求不高估计前三条差不多够你用了。
mbbill
2016-07-11 10:57:54 +08:00
@congeec vim 没有 enca 这样猜编码的能力。能从 UTF8 fallback 到 GBK 是因为 UTF8 编码严格,尝试转换失败了。:h fileencodings 看看。如果你把 GBK 放 UTF8 前面,很多 utf8 的文档就被当成 GBK 打开然后乱码了。
EnginDee
2016-07-13 22:31:18 +08:00
程序写好了,在这里: https://github.com/dajbd/txt-beautifier
congeec
2016-07-14 14:15:47 +08:00
@mbbill 你是对的,我错了。。。
mbbill
2016-07-14 14:54:36 +08:00
@congeec 上次一次搞这事儿是 10 年前了。。 http://www.vim.org/scripts/script.php?script_id=1708 有兴趣可以试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/291535

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX