gpt4 book ai didi

JavaServlet : How to handle unknown encodings?

转载 作者:太空宇宙 更新时间:2023-11-04 09:00:05 24 4
gpt4 key购买 nike

当某个用户尝试查看我们的网页时,当我们调用response.getWriter()时,会抛出带有消息“charsetName”的NullPointerException。我反编译了我们的 Web 服务器的响应类(JRun 3.1),发现执行此操作时会抛出此错误:

s = getCharacterEncoding(); // returns 'x-mac-roman' I believe
try
{
outWriter.exchangeWriter(new OutputStreamWriter(bufStream, s));
}
catch(UnsupportedEncodingException unsupportedencodingexception)
{
s = MIME2Java.convert(s); // looks like this returns null
outWriter.exchangeWriter(new OutputStreamWriter(bufStream, s)); // NPE!!!
}

当我强制浏览器发送“Accept-Charset=x-mac-roman,utf-8”的请求 header (用户浏览器似乎就是这样做的)时,我终于能够重现此错误。

这是网络服务器代码,因此我无法在此处进行任何更改,但我们可以采取一些措施来确保这种情况永远不会发生。我们可以明确强制网络服务器使用某种编码而不是根据请求来决定吗?

最佳答案

MacRoman 是一种“国际字符集”,并不总是由 Sun Java 安装程序安装,因此不可用于程序。

根据http://java.sun.com/javase/6/docs/technotes/guides/intl/encoding.doc.html如果安装程序确定它是“欧洲”操作系统,则不会完成此操作。

如果您重新安装 Sun Java 并请求在自定义安装中支持非欧洲语言,则应更正此问题。

关于JavaServlet : How to handle unknown encodings?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/957097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com