的SAXParseException;无效的编码名称“UTF8”

时间:2012-05-23 12:33:35

标签: java playframework saxparseexception

我正在使用Play Framework 1.2.4并尝试解析SOAP响应。

回应是:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
...
</soap:Body>
</soap:Envelope>

当我尝试用play.libs.WS.HttpResponse.getXml()解析它时,我遇到致命错误:

[Fatal Error] :-1:-1: Invalid encoding name "UTF8".

有趣的是,编码不是&#34; UTF8&#34; 它是&#34; UTF-8&#34; 。那么为什么我得到这个例外呢?有任何想法吗?

提前致谢..

1 个答案:

答案 0 :(得分:1)

我的xmlrpc服务器应用程序遇到同样的问题,因为发送UTF8的非标准客户端。

正如我发现的那样,提升异常的是xerces而我绕过它的修复是使用EncodingMap类将UTF8注册为UTF-8:

EncodingMap.putIANA2JavaMapping( "UTF8", "UTF8" );
EncodingMap.putJava2IANAMapping( "UTF8", "UTF8" );