在码农的世界中除了Bug,还有一个比较头疼的事情,那就是中文编码格式,对于普通人,你现在看到的中文,或者说你看到的所有中文,其实都是中文,你可能根本就不关心它是什么编码格式,但是程序员却不得不关注中文的编码格式,或者代码的编码格式,不然就会出现下面这种:
?????????可能已经乱瞎你们的眼了,其实它们正常如下:
???这就是编码格式导致的,乱到火星人也无法认识,编码不仅仅会导致显示出现短路,还会让程序无法正常运行,特别是在加解密或者验签中,如果不按规定的编码格式编码,经常会遇见:签名失败,验签不符这种的错误。今天分享的是如何证明编码的格式:
第一步:复制乱码的字符串(这个是还不要叫中文了,谁也不认识了),利用UE转16进制查看乱码处对应的16进制。如查看‘一个程序员’对应的16进制:
第二步:在Java代码中查询‘一个程序员’对应的UTF-8和GBK 16进制表示;
比较就可以发现UE中的‘一个程序员’的编码格式是GBK的,这样就可以证明对应中文的编码格式了。
获取字符串编码格式的16进制的Java代码如下: