日期:2014-05-20  浏览次数:20849 次

怎么判断乱码?
我在解密一字符串时变成了乱码,这是解密失败,如何判断是不是乱码?谢谢

------解决方案--------------------
解密失败或编码不统一都可能造成乱码,他们的根本原因都是取的字符位不正确.一个汉字取一半
===> 最好的办法是用英文判断,英文不可能出现乱码问题
------解决方案--------------------
> 如何判断是不是乱码?

如果你能预先知道字符串的字符集(编码方式),就可以。就判断你得到的字节数组是否符合该字符集(编码方式)的组成规则就是了。

当然,这并不是百分之百可靠的,一个字节数组可能完全符合指定字符集的组成规则,但并不是你期望得到的字符串。这个是没办法的事情。
------解决方案--------------------
> 如果知道字符集的话要怎么做呢?

用我前面说的方法,只能得到“否定”的答案,不能得到“肯定”的答案。

比如,如果你已经知道一个字节数组应该包含的是 GB2312 的字符串,那么,根据国标码的区位定义规则,如果在字节数组中出现了 0x20 0xD6 0x20,那么就可以断定,这个字符串“不是 GB2312 的”,也就是说,如果发现了“不合理”的现象,你就得到了“否定”的答案。

但是,如果没有发现任何不合理的现象,你仍然不能百分之百地“肯定”,只能说“很可能”。