求解:解析xml遇到中文乱码
时间:2011-09-08
来源:互联网
求解决中文乱码方法!!!!
resourceColumnVersionReqMap.put("searchkey", searchkey.getText());
searchkey.getText()中取到的中文为??
解析的xml:
System.out.println("str:" + str);打印下面xml字符串
<?xml version="1.0" encoding="UTF-8"?><ecity><msgname>searchreq</msgname><msgversion>1.0</msgversion><transactionid>1</transactionid><userid>100254</userid><msgsender>client</msgsender><svccont><searchkey>企业</searchkey><startpage>0</startpage><itemnum>20</itemnum></svccont></ecity>
代码如下:
public static Map<String,String> SearchColumnVersionReqXml(InputStream in){
Map<String,String> resourceColumnVersionReqMap = new HashMap<String, String>();
SAXReader saxReader = new SAXReader();
try {
System.out.println("============SearchLANM stream to string=============");
String s = ColumnReqUtil.inputStreamToString(in);
System.out.println("s:" + s);
System.out.println("============SearchLANM string utf-8=============");
String str = URLDecoder.decode(s, "UTF-8");
System.out.println("str:" + str);
System.out.println("============SearchLANM string to stream=============");
InputStream is = ColumnReqUtil.StringToInputStream(str);
InputStreamReader strInStream = new InputStreamReader(is,"UTF-8");
Document document = saxReader.read(strInStream);
Element root = document.getRootElement();
Element svccont = root.element("svccont");
Element searchkey = svccont.element("searchkey");
if(searchkey!=null&&!(searchkey.getText()==null||searchkey.getText().equals(""))){
resourceColumnVersionReqMap.put("searchkey", searchkey.getText()); }
Element token=svccont.element("startpage");
if(token!=null&&!(token.getText()==null||token.getText().equals(""))){
resourceColumnVersionReqMap.put("startpage", token.getText());
}
Element citycode=svccont.element("itemnum");
if(citycode!=null&&!(citycode.getText()==null||citycode.getText().equals(""))){
resourceColumnVersionReqMap.put("itemnum", citycode.getText());
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return resourceColumnVersionReqMap;
}
resourceColumnVersionReqMap.put("searchkey", searchkey.getText());
searchkey.getText()中取到的中文为??
解析的xml:
System.out.println("str:" + str);打印下面xml字符串
<?xml version="1.0" encoding="UTF-8"?><ecity><msgname>searchreq</msgname><msgversion>1.0</msgversion><transactionid>1</transactionid><userid>100254</userid><msgsender>client</msgsender><svccont><searchkey>企业</searchkey><startpage>0</startpage><itemnum>20</itemnum></svccont></ecity>
代码如下:
public static Map<String,String> SearchColumnVersionReqXml(InputStream in){
Map<String,String> resourceColumnVersionReqMap = new HashMap<String, String>();
SAXReader saxReader = new SAXReader();
try {
System.out.println("============SearchLANM stream to string=============");
String s = ColumnReqUtil.inputStreamToString(in);
System.out.println("s:" + s);
System.out.println("============SearchLANM string utf-8=============");
String str = URLDecoder.decode(s, "UTF-8");
System.out.println("str:" + str);
System.out.println("============SearchLANM string to stream=============");
InputStream is = ColumnReqUtil.StringToInputStream(str);
InputStreamReader strInStream = new InputStreamReader(is,"UTF-8");
Document document = saxReader.read(strInStream);
Element root = document.getRootElement();
Element svccont = root.element("svccont");
Element searchkey = svccont.element("searchkey");
if(searchkey!=null&&!(searchkey.getText()==null||searchkey.getText().equals(""))){
resourceColumnVersionReqMap.put("searchkey", searchkey.getText()); }
Element token=svccont.element("startpage");
if(token!=null&&!(token.getText()==null||token.getText().equals(""))){
resourceColumnVersionReqMap.put("startpage", token.getText());
}
Element citycode=svccont.element("itemnum");
if(citycode!=null&&!(citycode.getText()==null||citycode.getText().equals(""))){
resourceColumnVersionReqMap.put("itemnum", citycode.getText());
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return resourceColumnVersionReqMap;
}
作者: QQ13262407 发布时间: 2011-09-08
为什么要String str = URLDecoder.decode(s, "UTF-8"); ?
数据传送过来之前有没有URLEncode?
数据传送过来之前有没有URLEncode?
作者: vcvsvdvn 发布时间: 2011-09-08
这段代码是服务端解析xml,客户端传过来的String test = "%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%3Cecity%3E%3Cmsgname%3Esearchreq%3C%2Fmsgname%3E%3Cmsgversion%3E1.0%3C%2Fmsgversion%3E%3Ctransactionid%3E1%3C%2Ftransactionid%3E%3Cuserid%3E100254%3C%2Fuserid%3E%3Cmsgsender%3Eclient%3C%2Fmsgsender%3E%3Csvccont%3E%3Csearchkey%3E%E4%BC%81%3C%2Fsearchkey%3E%3Cstartpage%3E0%3C%2Fstartpage%3E%3Citemnum%3E20%3C%2Fitemnum%3E%3C%2Fsvccont%3E%3C%2Fecity%3E";
我这里用URLDecoder.decode(s, "UTF-8")进行了转换
转了后<?xml version="1.0" encoding="UTF-8"?><ecity><msgname>searchreq</msgname><msgversion>1.0</msgversion><transactionid>1</transactionid><userid>100254</userid><msgsender>client</msgsender><svccont><searchkey>企业</searchkey><startpage>0</startpage><itemnum>20</itemnum></svccont></ecity>
在解析
我这里用URLDecoder.decode(s, "UTF-8")进行了转换
转了后<?xml version="1.0" encoding="UTF-8"?><ecity><msgname>searchreq</msgname><msgversion>1.0</msgversion><transactionid>1</transactionid><userid>100254</userid><msgsender>client</msgsender><svccont><searchkey>企业</searchkey><startpage>0</startpage><itemnum>20</itemnum></svccont></ecity>
在解析
作者: QQ13262407 发布时间: 2011-09-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28