2017-04-20 63 views
0
  • MongoDB server;在windows-1251字符集中的文本數據。
  • RESTHeart服務器。
  • 帶窗口-1251字符集的PHP向RESTHeart發送請求。
  • 文本數據被破壞

要獲得文本 「回」 我用這個代碼(從UTF-8到1251,然後從UTF-8到1251,然後再返回到UTF-8,原因JSON拋出錯誤,如果編碼不是UTF-8):RESTHeart with windows-1251 charset

$body = iconv('CP1251', 'UTF-8', iconv('UTF-8', 'CP1251//IGNORE', iconv('UTF-8', 'CP1251//IGNORE', $body))); 

此$體對象後包含普通的文本,但沒有一些字符(不是特別的,像cyrilic 'И')。

+0

我不認爲你可以轉換ROM UTF-8至1251,然後從UTF -8到1251,然後返回到UTF-8,沒有一些信息丟失......我會使用全部1251或全部UTF-8。 – mturatti

+0

我很樂意在任何地方使用UTF-8,但現在我必須與之前完成的工作一起工作,而且很難重新制作。 – Alexey

回答

1

可以設置爲與-Dfile.encoding property.

執行RESTHeart嘗試像JVM中的字符集:

java -Dfile.encoding=CP1251 -server -jar restheart.jar conf.yml 
+0

謝謝 或java -Dfile.encoding = UTF8 -server -jar restheart.jar conf.yml – Alexey