我将所有配置设置为UTF-8,但是在Intellij无法识别RSA加密结果之后.
这是我的设置:
这是实际的加密文本:
getRSA().init(Cipher.ENCRYPT_MODE, readPublicKey()); return new String(getRSA().doFinal(token.getBytes("UTF-8")));
我也在pom.xml中设置
UTF-8
以及命令行参数:
-Dfile.encoding=UTF-8
可能是什么原因?
您正在尝试将任意二进制数据视为UTF-8编码的文本.不是.它只是任意的二进制数据.你正在做的就像试图将图像或音乐文件表示为文本 - 它根本就不是文本......
您应该使用Base64将其转换为字符串(例如,使用此公共域库).有关为何需要这些内容的更多背景信息,请参阅Marc Gravell关于IO问题的博客文章.
请注意,这绝对不是 Intellij问题 - 这是您对数据采用的方法的问题.