1
clino 2015-04-22 09:18:09 +08:00
两个都试试咯,有UnicodeDecodeError之类的就试下一个编码,不过这种方法碰到两种都能decode的就抓瞎了
|
2
future0906 2015-04-22 09:20:54 +08:00
UTF-8和GB2312的编码空间应该是有重叠,没办法自动解析,手工处理吧。
|
3
clino 2015-04-22 09:23:12 +08:00
或者碰到两种都能decode的才人工判断下,只有一种能decode就能自动了
|
4
bombless 2015-04-22 09:24:19 +08:00
这个时候你需要 ML (逃
要不基于某种马卡罗夫链?(再逃 |
5
amaranthf 2015-04-22 09:31:56 +08:00
这两种编码混杂在同一个文件中,几乎不可能自动识别吧,毕竟编码有重叠。只能人工喽。
|
6
io 2015-04-22 09:34:12 +08:00
神经网络
|
8
ivito OP @future0906 不知道编辑器是怎么处理的,遇到无法解析的会显示乱码怎么实现的呢
|
10
mhycy 2015-04-22 09:52:07 +08:00
你需要一个常用词列表才有可能进行部分自动的转换
方案如下: 1 - 按双字节拆分,用GB2312解码(其实这个步骤就是直接用GB2312解码) 2 - 遇到GB2312无法解码的字符,明确标记为UTF-8 3 - 一般中文在UTF-8都使用3字节进行储存,所以对于这篇文文章照样进行三字节拆分 4 - 移位三次,提出确认落在 u4E00 - u9FFF 范围内的的字符 5 - 上常用词表进行过滤 (如果常用词表有文字使用频率的话,多个解码结果进行加权投票选字能提高成功率) |
11
mhycy 2015-04-22 09:55:18 +08:00
|
12
ivito OP @mhycy 感觉这个方法处理纯中文应该可以,但一般文档是中英文都有的,其中英文部分gb2312和utf8兼容ascii 只有一个字节,按照你的思路稍微做一些修改应该可以,但没想好用什么数据结构表示结果中产生的多种可能性
|
13
imn1 2015-04-22 10:05:58 +08:00
如果是标记语言文本,并且知道有什么编码,就容易些,按标签分割判断
纯文本的话,如果两种编码之间没有明确分界,例如换行,就很难办了 |
14
mhycy 2015-04-22 10:10:36 +08:00
|
16
zouxy 2015-04-22 10:21:10 +08:00
想不到还有这种需求.
如果只有中文.还可以搞搞. 如果是全世界的文字,就没办法了. |
17
FrankFang128 2015-04-22 10:22:57 +08:00 via Android
靠猜
|
18
ivito OP @zouxy 有些文档不知道怎么弄的,里边就有乱码,某些部分可以用utf8 打开,某些部分可以用gb2312打开
|
19
ivito OP @FrankFang128 字符太多,没法一个一个猜啊
|
21
SHF 2018-04-02 23:50:29 +08:00
MacType 的源码就是 Shift-JIS 和 GB2312 混合编码的,神坑。
突然想到一个好方法,可以分别以这两种编码作为原编码,都转换为 UTF-8,然后用工具比较两个文件做个合并。 |