当前位置: 首页 > 面试题库 >

更改String(byte [])的默认编码

王宏深
2023-03-14
问题内容

有没有办法更改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 ...

…但是我自己还没有尝试过。最安全的方法是在操作系统中设置环境变量。



 类似资料:
  • 问题内容: 从控制台运行应用程序时,Python存在许多“无法编码”和“无法解码”的问题。但是在 IDE中,默认字符编码设置为UTF-8,我很好。 我四处寻找设置默认编码的方法,有人说在启动时会删除该函数,因此我们无法使用它。 那么什么是最好的解决方案? 问题答案: 这是一个更简单的方法(黑客),可为你提供从中删除的功能sys: 不过,这并不是一件安全的事情:这显然是一个,因为有意将其从sysPy

  • 我试图找到一种方法,为通过注释从Spring Boot中的application.property文件访问的属性设置UTF-8编码。到目前为止,我已经通过创建一个bean成功地将编码设置到我自己的属性源: 这样的解决方案存在两个问题。这一次,它与Spring Boot默认使用的“application.properties”位置(http://docs.Spring.io/spring-boot/

  • 问题内容: 我很好奇为什么Golang不提供方法。从性能的角度来看,是否不会复制输入参数并增加成本(尽管由于字符串是不可变的,所以这看起来很奇怪,为什么要复制它们)? 我是Go的新手,不胜感激。 问题答案: 不是函数(或方法)调用,而是类型转换。 类型转换“本身”不会复制该值。但是将a转换为a 确实需要,因为结果字节片是 可变的 ,并且如果不进行复制,则可以修改/更改 不可变 的值(的内容),它必

  • 我已经这样配置了我的axios 在我的组件中,我作为 现在,上面的方法可以工作了,但是我想在不影响全局基本URL的情况下更改,这样在我的组件中,我就可以在没有APIendpoint的情况下简单地使用它 我已经试过了 我该怎么办?

  • 问题内容: 我将如何为所有实例设置默认字体。而不是分别为每个字体设置字体。 问题答案: 使用定义JLabel的默认字体: 通过:http : //coding.derkeiler.com/Archive/Java/comp.lang.java.help/2005-04/msg00395.html

  • 默认情况下,当您将命令的输出重定向到文件或通过管道将其导入PowerShell中的其他内容时,编码是UTF-16,这是不有用的。我想把它改成UTF-8。 可以通过将语法替换为来逐个实现,但每次都要重复这样做会很尴尬。 在PowerShell中设置东西的持久方法是将它们放在中;我已经验证了这个文件确实是在启动时执行的。 曾经说过,可以使用设置输出编码,但我尝试过,没有效果。 https://blog