2

我最近编写了一个作为 Java 应用程序运行的 Web 服务(可能不是最好的主意,但我在 Java 方面比 PHP 或英语等其他语言更流利:p)。Java 应用程序只是将 JSON 数据输出到 System.out。

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

这是我的 PHP 脚本:

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

问题是每个特殊字符(如“é”)都输出为“??”

知道我可以尝试解决该编码问题吗?

谢谢

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

4

3 回答 3

1

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

听起来您需要确保正确处理双字节字符:)

更多关于编码:http: //illegalargumentexception.blogspot.com/2009/05/java-rough-guide-to-character-encoding.html

于 2012-04-24T18:37:53.263 回答
1

我通过添加-Dfile.encoding=UTF8到我的 java 调用解决了我的问题:

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

我想可能有更好的解决方案,但它解决了我的问题:)

于 2012-04-25T18:04:49.957 回答
0

编码是一个涉及很多变量的问题:操作系统、应用程序、bd 等。

尝试遵循这个:http ://www.phpwact.org/php/i18n/utf-8

于 2012-04-24T18:40:29.880 回答