xml的编码错误

时间:2011-04-19 14:29:58

标签: java encoding

我有一个像" <person name="peter" ><\person>"

这样的字符串

网址编码

URLEncoder.encode(person.toString(),"UTF-8");

但是编码很糟糕,因为对于空格+ %20=,他会给出其他值,你们可以帮助我吗?

2 个答案:

答案 0 :(得分:6)

这与URLEncoder javaDoc中指定的完全相同。空格转换为+=为“不安全”,因此编码为%3D

如果您需要%20代替+,只需进行一些后期处理:

URLEncoder.encode(person.toString(),"UTF-8").replace("+", "%20");

答案 1 :(得分:0)

考虑到您的评论,我假设您想要decode网络服务答案。

// the answer you receive from the webservice
string webserviceResponse = "%3Cperson+name%3D%22peter%22%3E%3C%2Fperson%3E";

// turn into a "good" Xml string
string person = URLDecoder.decode(webserviceResponse, "UTF-8");

会给你

<person name="peter"></person>

作为person的值。