admin管理员组

文章数量:1487745

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

代码语言:javascript代码运行次数:0运行复制
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代码运行次数:0运行复制
输出结果:

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代码运行次数:0运行复制
* 在VM Options里面加上 -Dfile.encoding=UTF-8 并应用
* 以上更改后, 控制台输出会乱码, 还需要将IDEA的启动环境也配成UTF-8, 在IDEA安装目录下, 打开 idea64.exe.vmoptions , 最后一行加上 -Dfile.encoding=UTF-8
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2022-07-06,如有侵权请联系 cloudcommunity@tencent 删除测试encodingrsastring编码

本文标签: idea文件的编码设置,解决中文编码不一致问题,对RSA验签及文本比较的测试方法