繁体   English   中英

字符编码不一致

[英]Inconsistent Character encoding

所以我有这个文件,其中撇号和双引号没有正确显示。 我尝试将编码更改为UTF-8,但仍然无济于事,问题在于更改在整个过程中并不一致,因此我不能简单地用撇号或双引号替换字符。 请帮我解决一下这个。 因此,基本上我想在Java中阅读此文本并为NLP应用程序做一些进一步的处理。 当我通过将编码显式设置为UTF-8来读取Java中的这些文件时,尽管与文件中看到的内容有所不同,但我仍然会收到垃圾字符。

这是两个示例文本:

然而,<92>可以很容易地以任何想要的方式定义自己,尤其是在没有媒体挑战您的情况下。 道德勇气的真正考验是在现实生活中,人们如何行事[97]而不是在谈论<97>。 在一个具体的例子中,当伊利诺伊州参议员被要求为正义辩护时,他无处可寻。

另一个示例文本:

我会事先研究所有内容,并确切知道每次约会需要什么样的测试以及这些测试的正常范围。 是~~~我不是吗?〜@〜还担心会发生某些事情,或者一项或多项测试会异常返回。 我做。 我以为,在过去的几个月里,我有了所有这些好的约会,我会开始对某些事情出问题感到恐惧。 但是我的恐惧水平保持不变。

这些文本的编码方式似乎有所不同-第一个似乎是Windows-1252 ,第二个可能是UTF-8显示的有些奇怪。 这意味着没有一种单一的方法可以读取所有内容。

您可以尝试做的最好的办法就是尝试检测文件类型-例如,如果所有非7位ascii字符成对出现,第一个在0xc0-0xff范围内,则可能是UTF-8。 如果在0x80到0xbf之间的范围内有任何一个首尾字符,则其不是UTF-8。 除非您知道该文本是用非拉丁语脚本(俄语,希腊语,...)编写的,否则只要UTF-8格式不正确,就可以假设Windows-1252是安全的。

但这是猜测,确保唯一正确阅读文本的唯一方法是首先确定每个文本的编码,或者根据编码将文本分类到不同的文件夹中,并对每个文本使用正确的编码读。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM