这就是问题所在:我的代码中有一些中文,我正在将其写入 sqlite。
当我在 Eclipse 中运行我的程序并从 sqlite 中读取字符串时,它工作正常。但是当我将项目打包到一个 jar 并在命令行中运行它时。从sqlite中读出的中文字符串不可读。
经过一番试验,我知道问题出在file.encoding
系统属性上。当我使用 command: 运行 jar 时java -Dfile.encoding=UTF-8 -jar TK.jar
,它适用于中文单词,但是如果我在代码中设置系统属性:System.setProperty("file.encoding", "UTF-8");
,它将无法正常工作。
那么,从命令行和代码设置系统属性有什么区别?谁能告诉我如何file.encoding
在代码中设置系统属性?
非常感谢!
总结一下:
String.getBytes()
使用时记得加字符集new String()
,避免在不同环境下运行程序时中文或日文输出不可读。