2012-04-24 92 views
2

我最近编写了一个作为Java应用程序运行的web服务(可能不是最好的想法,但我比Java或其他语言如PHP或英语更流利:p)。 Java应用程序只是将JSON数据输出到System.out。PHP和Java编码问题

然后我写了一个使用Java应用程序的小PHP脚本。

这里是我的PHP脚本:

ob_start('ob_gzhandler'); 
header("Content-Type: application/json; charset=UTF-8"); 
passthru("java -jar webservice.jar "); 

的问题是,每一个特殊字符(如“E”)输出为“?”

任何想法,我可以尝试解决该编码问题?

感谢

编辑:当我在一个shell中运行java -jar webservice.jar,我没有编码问题

+0

这是在浏览器中还是在命令行? – 2012-04-24 18:38:14

+0

在shell命令行中,我没有编码问题(编辑后添加此事实)。在浏览器(或我的移动客户端应用程序)中出现问题,这就是为什么我认为它与php脚本相关 – Estragon 2012-04-24 18:39:42

+0

@Estragon您确定输出实际上是UTF-8编码吗?在浏览器中将编码更改为拉丁文时会发生什么? – madflow 2012-04-24 18:48:26

回答

1

我加入-Dfile.encoding=UTF8我java调用解决我的问题猜猜可能有更好的解决方案,但它解决了我的问题,所以:)

0

编码是AP roblem,涵盖了很多的变量:操作系统,应用程序,BD等

尽量遵循这样的:

java -Dfile.encoding=UTF8 -jar webservice.jar 

我:http://www.phpwact.org/php/i18n/utf-8