0

我向 php 文件发送查询以接收 xml:

www.mydomain.com/order.php?item=€15,- shoes

对于 HTML,我需要 €-sign 为: & euro ;

我试过:

try {
            query=URLEncoder.encode(query,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();

        }

和 POST-url=www.mydomain.com/order.php?query

问题在于 = 符号也被编码,我得到 & euro 的错误;(标志):

Caused by: java.lang.IllegalArgumentException: Illegal character in query at index 

如何编码此查询?

4

3 回答 3

1

我会用不同的字符替换 € 符号并再次将其转换回来。€ 符号不是 ASCII。

于 2013-08-22T01:12:03.893 回答
1

您不想对整个查询字符串进行编码。

在构造查询字符串之前对每个参数值进行编码。

例如:

query = "item=" + URLEncoder.encode("€15")

此外,如果您想要&euro的不是 URL 编码而是 HTML 转义。请改用 URL 编码。

于 2013-08-22T01:13:14.213 回答
0

我使用类似于您的代码:

String query="www.mydomain.com/order.php?item=€15,- shoes";


        try {
            query=URLEncoder.encode(query,"UTF-8");
            System.out.println(query);

            String decoQuery=URLDecoder.decode(query);
            System.out.println(decoQuery);
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();

        }   

输出:

www.mydomain.com%2Forder.php%3Fitem%3D%E2%82%AC15%2C-+shoes
www.mydomain.com/order.php?item=€15,- shoes

你确定你的 IDE 下你的项目有正确的编码文件为 UTF-8 吗?即eclipse:在项目上用鼠标右键==>资源==>文本文件编码==>把它放在UTF-8上

于 2013-08-22T01:16:52.073 回答