更改String(byte [])的默认编码
有没有办法更改String(byte [])构造函数使用的编码?
在我自己的代码中,我使用String(byte [],String)指定编码,但是我使用的是无法更改的外部库。
String src = "with accents: é à";byte[] bytes = src.getBytes("UTF-8");
System.out.println("UTF-8 decoded: "+new String(bytes,"UTF-8"));
System.out.println("Default decoded: "+new String(bytes));
输出为:
UTF-8解码:带有重音符号:éà默认解码:带有重音符号:éÃ
我尝试更改系统属性,file.encoding
但是它不起作用。
回答:
您需要在启动JVM之前更改语言环境。看到:
Java,错误ID
4163515
有些地方似乎暗示您可以通过在启动JVM时设置file.encoding变量来做到这一点,例如
java -Dfile.encoding=UTF-8 ...
…但是我自己还没有尝试过。最安全的方法是在操作系统中设置环境变量。
以上是 更改String(byte [])的默认编码 的全部内容, 来源链接: utcz.com/qa/425904.html