2014-01-05 88 views
3

我正在用CentOS 6.3運行一個java服務器。在linux服務上運行時Java編碼已損壞?

我的問題是,當jar文件在服務上運行時,韓文(EUC-KR,UTF-8)編碼不正確。當我簡單運行「java -jar example.jar」時沒有問題。

如果我在服務上運行類似命令,打印的文本(只有韓文,英文正常工作)變成全部「???」。

這是我的服務腳本的樣子。印上的nohup

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

即使文本時,在服務運行已損壞。( 「nohup的Java的罐子example.jar」 正常工作)

我試過設置「-Dfile.encoding = EUC-KR 「,設置」new String(message.getBytes(「EUC-KR」),「EUC-KR」)「」。似乎沒有任何工作(用UTF-8也測試...)。我檢查了il8n文件和區域設置,並將其設置爲ko_KR.eucKR。

有沒有我可以改變的設置來獲得這個權利?

回答

1

檢查您的互動環境 - 與服務所見的環境進行比較。

4

@異形生命形式

你完全指出我的方向我的解決方案。

在Restlet框架中編寫的我的Web服務在啓動時作爲linux服務時會混淆字符編碼(UTF-8),但在手動重啓或在命令行上運行時很好。

看着Apache2文檔(用作反向代理)並試圖更改引導順序,但沒有任何工作。

現在我加入

出口LANG =的en_US.UTF-8

到我的啓動腳本

,一切工作就像一個魅力。加泰羅尼亞語,西班牙語,德語,法語,現在都可以在服務器啓動了!

Thanx Marc