idea文件的编码设置,解决中文编码不一致问题,对RSA验签及文本比较的测试方法 -Dfile.encoding=UTF-8

2024-10-09 09:50:58 浏览数 (2)

代码语言:javascript复制
String reqContent = "abcdef中文"; //new String("abcdefee".getBytes()," GBK ");
        System.out.println("reqContent="  reqContent);

        String reqContentTest = new String("abcdef中文".getBytes("GBK"));
        System.out.println("reqContentTest="  reqContentTest);
        System.out.println("file.encoding是否一致="   reqContent.equals(reqContentTest));

        String reqContent2Md5 = MD5.MD5Encode(reqContent);
        String reqContent3Md5 = MD5.MD5Encode(reqContentTest);
        System.out.println("reqContent2Md5="  reqContent2Md5);
        System.out.println("reqContent3Md5="  reqContent3Md5);
        System.out.println("file.encoding是否一致md5="   reqContent2Md5.equals(reqContent3Md5));

        String reqContent2 = new String("abcdef中文".getBytes("UTF-8"));
        String reqContent3 = new String("abcdef中文".getBytes("GBK"));
        System.out.println("是否一致="   reqContent2.equals(reqContent3));

代码语言:javascript复制
输出结果:

reqContent=abcdef���� reqContentTest=abcdef���� file.encoding�Ƿ�һ��=true reqContent2Md5=5d325b0b0bb2a931a6c9c213bf3d6965 reqContent3Md5=5d325b0b0bb2a931a6c9c213bf3d6965 file.encoding�Ƿ�һ��md5=true

以上仅仅测试的是GBK编码,实际idea设置的是UTF-8编码。

如果idea未设置默认是GBK编码,而文件是UTF-8编码,所以编码不一致的情况,会出现RSA验签等问题,因为单单从打印出来的文字来看很难发现,

可以通过字符比较和MD5的方式来比较是否一致,从而发现是否是编码问题。

代码语言:javascript复制
* 在VM Options里面加上 -Dfile.encoding=UTF-8 并应用
* 以上更改后, 控制台输出会乱码, 还需要将IDEA的启动环境也配成UTF-8, 在IDEA安装目录下, 打开 idea64.exe.vmoptions , 最后一行加上 -Dfile.encoding=UTF-8

0 人点赞