2017-04-20 69 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