(原創)開發微信公眾平台遇到的亂碼等問題的解決


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的環境和本地不太一樣.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM