2016-06-01 18 views
0

我有一個java spring MVC應用程序,它接受來自客戶端的請求並將Json數據發送回客戶端。 Json數據包含Unicode字符串。該應用程序在我的開發機器(Linux mint,Apache Tomcat)上正常工作,但是當我在其他服務器上部署生成的war文件時(Ubuntu,Same Apache Tomcat版本),響應正文中的所有Persian Unicode字符都具有已被'?'取代Apache Tomcat服務器(在Linux計算機中)區域設置和Unicode字符替換爲'?'

這裏是響應體樣品,我從Apache Tomcat上的瀏覽器

> {  "id": 5186,  "title": "magh", "respubdate": "2015-10-05", 
> "acceptdate": "2015-09-28",  "author": "??? ?????", 
> "subject_category_id": 109,  "subject_category_name": "???? ????", 
> "comment": null, "event_title": "????? ???????? ? ????? ??????", 
> "orgunit_child_name": "???? ?",  "orgunit_parent_name": "???????? 
> ?????? ??????? ? ????????" } 

了我的Apache Tomcat的server.xml中還設置

<Connector port="8080" 
URIEncoding="UTF-8" 
/> 

,但什麼都沒有改變。

的Apache Tomcat版本:7.0.6

+0

您是否在保存時將文件編碼爲unicode?這通常發生在沒有使用適當的編碼保存物理文件時。大多數文本編輯器和IDE將允許您'使用編碼保存'。 –

+0

你可以引導我們建立這個JSON串的整個鏈?我想你錯過了在你的代碼中的某個地方提供編碼。 – mvera

+0

@ErnestKiwele這不是ablout文件,客戶端發送請求並通過服務器返回JSONs – Amir

回答

0

我找到了解決辦法。當我在開發和生產機器上運行

locale -a 

。我看到機器上安裝的本地人之間的差異。我在生產機器上安裝了錯過的語言環境(語言)軟件包,並且每件事看起來都不錯;)