当前位置:  开发笔记 > 编程语言 > 正文

如何确定字符串的字符集?

如何解决《如何确定字符串的字符集?》经验,为你挑选了2个好方法。

我有几个不同语言的文件.我以为它们都是UTF-8编码,但现在我不太确定.有些角色看起来很好,有些则没有.有没有办法可以打破字符串并尝试识别字符集?也许在白色空间上拆分然后识别每个单词?最后,是否有一种简单的方法可以将字符从一组转换为UTF-8?



1> Leon Timmerm..:

如果你不确定字符集肯定你只能猜测,基本上.utf8 :: valid可能对你有所帮助,但你无法确切知道.如果你知道如果它不是unicode,它必须是一个特定的字符集(比如Latin-1),你很幸运.如果你不知道,你就搞砸了.在任何情况下,除非另有说明,否则应始终假设整个文件都在相同的字符集中.如果你不这样做,你将失去理智.

至于你的问题如何在字符集之间进行转换:Encode就是为你做的



2> erickson..:

确定文件是否可能是UTF-8应该非常简单.如果编码不是UTF-8则确定编码通常是非常困难的.

如果文件使用UTF-8编码,则每个字节的高位应遵循一种模式.如果一个字符是一个字节,则其高位将被清零(零).否则,n字节字符(其中n为2-4)将n第一个字节的高位设置为1,然后是单个零位.以下n - 1字节应该具有最高位设置并且第二高位清零.

如果文件中的所有字节都遵循这些规则,则可能使用UTF-8进行编码.我可能会说,因为任何人都可以发明一种新的编码,这种编码碰巧遵循相同的规则,故意或偶然,但不同地解释代码.

请注意,使用US-ASCII编码的文件将遵循这些规则,但每个字节的高位为零.可以将这样的文件视为UTF-8,因为它们在此范围内兼容.否则,它是一些其他编码,并没有区分编码的固有测试.你必须使用一些上下文知识来猜测.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有