开发微信公众平台遇到的乱码等问题的解决

1.ngrok内网映射问题:

首先这个工具是外国人写的,服务器也在国外.但是tunnel部属在国内,支持ngrok绝大多数功能.

http://www.tunnel.mobi/

命令行中使用方法

在CMD命令中先切换到ngrok所在的位置再进行如下操作
方法一:ngrok 8080(该方法已被和谐掉了)

方法二:ngrok -config ngrok.cfg -subdomain example 8080

说明:
example-自己任意设置;
8080-tomcat的端口号;

但是用微信调试工具调试的时候却总是得不到相应,本地的tomcat服务器也没有任何log

可能是内网映射或其他问题.

分步排查.

于是先将应用部署到ACE上,确保应用稳定运行后再回头解决内网映射问题.

2.乱码问题

这次乱码全是????问号的数量和汉字一样多

一种可能的起因是:将utf-8的字符流以iso-8859-1的方式转换成了字节流.

但是有很多地方可能产生这个问题.

经过排查,发现两处可能引起这个问题的地方:

1.XStream xstream = new XStream(new DomDriver("utf-8"));

public static String textMessageToXml(TextMessage textMessage){
        XStream xstream = new XStream(new DomDriver("utf-8"));
        xstream.alias("xml", textMessage.getClass());
        String str = xstream.toXML(textMessage);
        return str;
    }

 

2.response.setContentType("text/xml,charset=utf-8");

两句话全都加上,终于不再乱码了.

//----------------------------------------

关于xstream:这次用它从po生成xml文件,最初是这么用的

XStream xstream = new XStream();

这样实例化的化需要依赖其他包.但是最开始我这样做在ace上面竟然也能运行,看来ace的环境和本地不太一样.

 

开发微信公众平台遇到的乱码等问题的解决

上一篇:我真的不懂微信营销(一)


下一篇:解决微信不能扫描下载的问题