servlet中从request获取xml文件的内容部分显示乱码
时间:2011-04-20
来源:互联网
doPost()方法中的代码:
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"UTF-8"));
String line="";
StringBuffer buffer = new StringBuffer(1024);
while((line=br.readLine())!=null){
buffer.append(line);
}
System.out.println(buffer.toString());
显示内容:
xmlmsg=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F………………
应该显示的为:
xmlmsg=<?xml version="1.0" encoding="UTF-8"?>………………
乱码特点是,< = " 还有空格这些符号显示为乱码,其他字母都能正常显示
请大侠们拔刀相助!!
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"UTF-8"));
String line="";
StringBuffer buffer = new StringBuffer(1024);
while((line=br.readLine())!=null){
buffer.append(line);
}
System.out.println(buffer.toString());
显示内容:
xmlmsg=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F………………
应该显示的为:
xmlmsg=<?xml version="1.0" encoding="UTF-8"?>………………
乱码特点是,< = " 还有空格这些符号显示为乱码,其他字母都能正常显示
请大侠们拔刀相助!!
作者: huanghaihe2008 发布时间: 2011-04-20
这个不是乱码,是URL转义字符。
编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。下表中列出了一些URL特殊符号及编码
[十六进制值]
1. + URL 中+号表示空格 %2B
2. 空格 URL中的空格可以用+号或者编码 %20
3. / 分隔目录和子目录 %2F
4. ? 分隔实际的 URL 和参数 %3F
5. % 指定特殊字符 %25
6. # 表示书签 %23
7. & URL 中指定的参数间的分隔符 %26
8. = URL 中指定参数的值 %3D
你的问题的解决办法,这样试试看:
在doPost()方法之前,用正则表达式匹配然后将其替换为对应的编码。
编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。下表中列出了一些URL特殊符号及编码
[十六进制值]
1. + URL 中+号表示空格 %2B
2. 空格 URL中的空格可以用+号或者编码 %20
3. / 分隔目录和子目录 %2F
4. ? 分隔实际的 URL 和参数 %3F
5. % 指定特殊字符 %25
6. # 表示书签 %23
7. & URL 中指定的参数间的分隔符 %26
8. = URL 中指定参数的值 %3D
你的问题的解决办法,这样试试看:
在doPost()方法之前,用正则表达式匹配然后将其替换为对应的编码。
作者: ghldty 发布时间: 2011-04-20
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28