在Linux服务上运行时,Java编码是否已损坏?

Jee*_*oon 4 java linux encoding centos

我正在运行带有CentOS 6.3的java服务器.

我的问题是,在服务上运行jar文件时,韩文(EUC-KR,UTF-8)编码不正确.当我简单地运行"java -jar example.jar"时没有问题.

如果我在服务上运行类似的命令,打印的文本(只有韩文,英文工作正常)变成全部"???".

这是我的服务脚本的样子.

start(){
    nohup java -jar example.jar > /root/nohup.txt 2>&1&
}
restartDevelop(){
    killall -9 java
    java -jar example.jar
}
Run Code Online (Sandbox Code Playgroud)

甚至在nohup上打印的文本在服务上运行时也会被破坏.("nohup java -jar example.jar"工作正常)

我已经尝试设置"-Dfile.encoding = EUC-KR",设置"new String(message.getBytes("EUC-KR"),"EUC-KR")".似乎没有什么工作(用UTF-8测试......).我检查了il8n文件和语言环境,并将其正确设置为ko_KR.eucKR.

有什么设置我可以改变来做到这一点吗?

小智 5

@ Alien Life Form

你完全指出了我的解决方案.

我在Restlet框架内编程的Web服务在作为linux服务启动时搞乱了字符编码(UTF-8),但在手动重启或在命令行上运行时很好.

看看Apache2文档(用作反向代理)并尝试更改启动顺序但没有任何效果.

现在我补充道

export LANG = en_US.UTF-8

到我的启动脚本

一切都像魅力一样.加泰罗尼亚语,西班牙语,德语,法语,现在服务器启动都可以!

Thanx Marc