微信开发中文乱码问题总结

来源:互联网 发布:淘宝小果澳洲代购 编辑:程序博客网 时间:2024/05/18 13:44

1.servlet中设置request和response编码

<span style="font-size:18px;">request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");</span>

2.解析xml字符串时需要设置编码

<span style="font-size:18px;">public static Map<String, String> parseXml(String xmlStr) throws Exception {        // 将解析结果存储在HashMap中    Map<String, String> map = new HashMap<String, String>();    // 从request中取得输入流    InputStream inputStream=new ByteArrayInputStream(xmlStr.getBytes("utf-8"));//    InputStream inputStream = xmlStr.getInputStream();    // 读取输入流    SAXReader reader = new SAXReader();    reader.setEncoding("utf-8");    Document document = reader.read(inputStream);    document.setXMLEncoding("utf-8");    // 得到xml根元素    Element root = document.getRootElement();    // 得到根元素的所有子节点    List<Element> elementList = root.elements();    // 遍历所有子节点    for (Element e : elementList)    map.put(e.getName(), e.getText());    // 释放资源    inputStream.close();    inputStream = null;    return map;    }</span>
3.服务器编码问题导致中文乱码
感谢这位作者的分享  原文链接
原因:file.encoding默认的字符集跟操作系统有关,中文操作系统下面默认的字符集是GBK,如果流程定义的xml文件中用UTF-8,
则不能正确转换,所以需要修改file.encoding的值为UTF-8。
解决办法:
部署在tomcat中的文件要修改file.encoding的值,可以在tomcat的catalina.bat文件中set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%的后面加上
 -Dfile.encoding="UTF-8"

0 0