有没有办法更改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));
Run Code Online (Sandbox Code Playgroud)
这个输出是:
UTF-8 decoded: with accents: é à Default decoded: with accents: é Ã
我试过更改系统属性,file.encoding但它不起作用.
您需要在启动JVM之前更改语言环境; 看到:
有些地方似乎暗示你可以通过在启动JVM时设置file.encoding变量来实现这一点,例如
java -Dfile.encoding=UTF-8 ...
Run Code Online (Sandbox Code Playgroud)
......但我自己没试过.最安全的方法是在操作系统中设置环境变量.
| 归档时间: |
|
| 查看次数: |
23536 次 |
| 最近记录: |