欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

代码出现乱码错误怎么办

更新时间: 2014-01-05 01:58:19 责任编辑: Author_N1

 

代码出现乱码异常怎么处理
环境:  linux debian
编码:  UTF-8
描述:  我在代码中.把json字符串 放入流中 具体代码:

public static void writeDataStream(HttpServletResponse response,String dataStr)throws Exception{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
OutputStream os = null;
try {
dos.writeUTF(dataStr);
byte data [] = baos.toByteArray();
response.setCharacterEncoding("GBK");
response.setContentLength(data.length);
response.setStatus(HttpServletResponse.SC_OK);
response.setContentType("application/octet-stream");
os = response.getOutputStream();
os.write(data);
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
if (os != null) {
os.close();
}
if (dos != null) {
dos.close();
}
if (baos != null) {
baos.close();
}
}
}

使用UTF-8 GBK都会抱如下错误:

请注意白色的地方.没有弄明白.有点诡异.!
客户端接受都正常,都是正确的json String.但是这个不停的打印错误,影响查找其他异常.
麻烦知道的给个提示.多谢了.
--参考方法--
好象是解码失败。
图太小看不清

另外你试下下面的代码,看看结果如何

public static void writeDataStream(HttpServletResponse response,String dataStr)throws Exception{
     try {
 
            response.getWriter().write(dataStr);
        } catch (IOException e) {
            log.error("call error!" + e.getMessage(), e);
        }
}

--参考方法--
flush()  一定要记得调用,
--参考方法--
json规范默认是utf-8,发的时候就要按这个规范
--参考方法--
建议:
在你传之前可以utf-8编码一下,然后针对特殊的中文信息类型的可以先base64编码一下,然后在反编译一下就ok!
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:58:19
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/3869/
本文WWW.DOC100.NET DOC100.NET版权所有。