问题是,我用一个servlet返回xml文件(里面有中文数据),发现前台解析不了,后来发现是中文问题,我改成用out直接打印到浏览器,弹出报错页面说:“无法显示 XML 页。……文本内容中发现无效字符。……”,可是我有response.setContentType("text/xml;charset=GBK");搞得我好纠结,求大家帮帮忙,期末作业来的,有快考试了,现在因为这个都还没复习啊!!
下面是doPost中的代码public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
response.setContentType("text/xml;charset=GBK");
PrintWriter out = response.getWriter();
StringBuffer sb = new StringBuffer("");
sb.append("<Books>");
sb.append("<book>");
sb.append("<title>"+"基础"+"</title>");
sb.append("</book>");
sb.append("</Books>");
out.println(sb.toString());
out.flush();
out.close();
}
下面是doPost中的代码public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
response.setContentType("text/xml;charset=GBK");
PrintWriter out = response.getWriter();
StringBuffer sb = new StringBuffer("");
sb.append("<Books>");
sb.append("<book>");
sb.append("<title>"+"基础"+"</title>");
sb.append("</book>");
sb.append("</Books>");
out.println(sb.toString());
out.flush();
out.close();
}
解决方案 »
- 向https端发送报文出错,源代码都研究好几天了无果,求救
- struts2应用实例
- IO强者进入
- ToroisetSVN
- hibernate 更新数据问题
- 问:关于XML在linux服务器的编码问题
- Struts2中有没有类似addActionMessage这样的方法
- 使用dom4j时发生了OutOfMemoryError错误,怎么解决啊
- Log4j在Tomcat下的初始化问题?
- 我使用websphere的application server 5.0 版本 ,它自带的jdk怎么是1。3版本的??? 有谁知道如何使was5.0环境下使用jdk1.4的啊?
- axis2创建web service返回xml
- struts2中action里怎么判断数据库拿到的值和页面输入的值相不相等
response.setContentType("text/xml;charset=utf-8");试试看,编码可以自己指定
急啊……!求帮助
“基础”可是经过eclipse编译过的啊
加一行这个看看
试用一下字节编码的打印,OutputStreamWriter out = new OutputStreamWriter(response.getOutputStream(),"utf-8");
可是你们能告诉我为什么吗?我自己新建一个XML文件(有中文数据),编码改成“UTF-8”用IE打开,会报错,说有无效字符,编码为“GBK”时才能正常显示,但是为什么在servlet里面charset=UTF-8却没问题呢?
window系统简体中文版的记事本默认的编码格式是gbk你指定xml的编码格式为utf-8就会出错的在保存文本文件时在文件名下面有个选编码的选utf-8就正常了