我在不同平台上的重音字符有问题。
当我在 fedora (其中默认字符集为UTF-8)的机器中记录此内容时,它会相应地打印为SacréCoeur。
但是当我更新到在 RedHat 上运行的另一台服务器(默认字符集是ISO-8859-1)时,它正在打印为
SacréCoeur。
我想在RedHat服务器上登录,就像在我的Fedora机器上一样。我怎么能这样做?
我的锻炼:
我也试过了this one但没有工作。
System.setProperty("file.encoding","ISO-8859-1");
Field charset =Charset.class.getDeclaredField("defaultCharset");
charset.setAccessible(true);
charset.set(null,null);
答案 0 :(得分:1)
从所有环境中获取类似的输出,而不依赖于服务器操作系统 默认字符编码,当你启动程序或服务器环境(Jboss tomcat或jetty)时,将-Dfile.encoding传递给启动脚本
(假设在jboss中运行run.sh,将-Dfile.encoding = UTF-8添加到JAVA_OPTS)
-Dfile.encoding = UTF-8