我所在的组织开始将其工作站迁移到 Windows 10。
我们最古老的系统之一在 Windows 7 中可以正常工作,但在 Windows 10 中却无法正常工作。
当浏览器发送http请求时,服务器出现java.io.UnsupportedEncodingException。
在浏览器端:
req= new ActiveXObject("Microsoft.XMLHTTP");
req.open("POST", url, false);
req.send(content); // content contain xml request
在服务器端: 在我看来,这是命令:
aResp.setContentType("text/xml; charset=ISO-8859-8");
异常(exception):
E com.ibm.wsspi.webcontainer.util.RequestUtils parseQueryString unsupported exception
java.io.UnsupportedEncodingException: ISO-8859-8, text/xml
at java.lang.StringCoding$DecoderCache.getDecoder(StringCoding.java:143)
at java.lang.StringCoding.getDecoder(StringCoding.java:384)
at java.lang.StringCoding.decode(StringCoding.java:496)
at java.lang.String.<init>(String.java:242)
at java.lang.String.<init>(String.java:271)
at com.ibm.wsspi.webcontainer.util.RequestUtils.parseQueryString(RequestUtils.java:150)
at com.ibm.ws.webcontainer.srt.SRTServletRequest.parseQueryStringList(SRTServletRequest.java:2364)
at com.ibm.ws.webcontainer.srt.SRTServletRequest.parseParameters(SRTServletRequest.java:2334)
at com.ibm.ws.webcontainer.srt.SRTServletRequest.getParameter(SRTServletRequest.java:1822)
有人知道 Windows 7 和 10 之间有什么区别吗?或者更确切地说,Windows 10 中缺少什么导致了问题
最佳答案
ISO-8859-8
不是 standard charsets 之一Java需要支持,即保证能够找到(除非您的安装已损坏)。
就您而言,差异似乎在于 Windows 10 环境中。我首先会检查它是否支持 ISO-8859-8
(但我不知道如何支持,我不是 Windows 用户)。它可能需要单独安装/启用。
如果您确定您的 Windows 10 确实支持该编码,那么这是 Java 无法在两者之间建立连接的问题,您可能需要深入研究charset providers ,但我们希望您不必去那里。
关于java.io.UnsupportedEncodingException : ISO-8859-8, 文本/xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61909669/