安卓客户端用dom4j生成的带有汉字的xml文件,发送到Servlet页面解析出来中文是乱码,应该怎么处理??
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓客户端用dom4j生成的带有汉字的xml文件,发送到Servlet页面解析出来中文是乱码,应该怎么处理??相关的知识,希望对你有一定的参考价值。
我在安卓客户端 用dom4j生成了一个xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="1">
<username>i am a person</username>
<password>this is password</password>
<netname>sky</netname>
<introduce>who could know my world</introduce>
</user>
</users>
我直接把它以String的类型,用POST方式提交出去了
然后到服务器端用dom4j解析出来:
这是在Servlet端的代码:
XmlOperation op=new XmlOperation(); ArrayList<User> users=new ArrayList<User>(); InputStream is=request.getInputStream(); users=op.xmlToList(is); for(User user:users) String id=user.getId(); String username=user.getUsername(); String password=user.getPassword(); String netname=user.getNetname(); String introduce=user.getIntroduce();
System.out.println("解析出来ID是:"+id); System.out.println("解析出来的用户名是:"+username); System.out.println("解析出来的密码:"+password); System.out.println("解析出来的网名是:"+netname); System.out.println("解析出来的介绍是:"+introduce);
用dom4j解析xml代码不用贴了吧,就是XmlOpetation那个类
现在运行出来结果如下
可以看出来解析是正常结果!!
可是我要是在客户端把那些英文换成中文,就解析不了了,,好像乱码了,,,我应该怎么操作??
我的建议是在生成的dom4j文件里加入中文,
2、如果servlet依旧正常解析,那么就是客户端接收返回的时候的乱码,你可以试着改客户端的编码格式
2、如果不正常解析,那么就是servlet的问题,servlet英文什么编码基本都一样的,所以要传中文试,不正常解析你就改servlet的setEncoding再试试 参考技术B 返回数据带有中文,获取返回时候需要这样
String response = EntityUntils.toString(entity,"utf-8") 加入编码格式参数
当然这是HttpClient方法与服务器交互
解析xml文件,如何动态的封装成一个java类
要看你的xml文件是什么格式,可以针对某个结构的xml文件封装一个解析类如果不依赖xml文件的格式,只是封装操作xml的方法,这个网上一大堆,用dom4j或jdom都可以 参考技术A 用java反射
以上是关于安卓客户端用dom4j生成的带有汉字的xml文件,发送到Servlet页面解析出来中文是乱码,应该怎么处理??的主要内容,如果未能解决你的问题,请参考以下文章