1

当我发送一个包含 UTF-8 字符 é 和 ú 的 URL 时,这些字符使用 PHP 函数 rawurlencode 进行编码。一旦我生成了我的 URL,它就会被传递给一个 CURL 请求到一个返回 XML 数据的 Java Web 服务。

单词 Chébé 的示例编码以 Ch%C3%A9b%C3%A9 形式发送到 Web 服务,据我所知,这是标准格式。我还尝试了 htmlentities 函数将字符串转换为实体,然后使用 rawurlencode 对字符串进行编码。

出于明显的 XML 原因,与查询匹配的示例中的项目名称采用实体形式。

我的问题是 Web 服务在发出请求时似乎因 500 内部错误而失败。所有其他字符串都很好。它仅受 UTF-8 字符影响。当我在浏览器中以 Chébé 之类的实体形式传递 URL 时,服务会响应结果,但是当我以浏览器 URL 编码形式传递时,它也会失败。我在这里错过了什么吗?

4

1 回答 1

0

谷歌以相同的方式对其进行编码 q=Ch%C3%A9b%C3%A9 所以......它是正确的。你在处理程序中做什么?假设您也控制处理程序服务,如果所有其他方法都失败,则 Base64 对其进行编码...

于 2012-10-19T19:06:09.220 回答