亂碼在我們的開發中還是比較常見的,一不小心就會出現亂碼的情況。問題是有的亂碼很容易解決,只是因爲粗心大意,而有的卻不太好解決。
通過本篇博文,你將主要學習到HttpURLConnection、OutputStream、PrintWriter、URLEncoder、URLDecoder、String.getBytes("utf-8")
這兩天在開發的過程中就遇到了一個很棘手的亂碼問題。
1.剛開始亂碼是這樣的,原本選的是“天河區”。要通過HttpurlConnection將業務系統數據傳到APP端服務器上,使用的是PrintWriter來輸出,此時“天河區”三個字全部亂碼。代碼如下所示
2.根據網上說的,我把printWriter輸出的內容重新編碼了一下再輸出:out.print(param.getBytes("UTF-8"));
此時就奇怪了,如下所示。我天,部分亂碼
3.我嘗試了下,不使用PrintWriter來輸出了,直接使用HttpUrlConnection的getOutputStream方法來輸出,問題解決了。
4.可是,老大說,這個代碼所在的類是公用的,也就是說,爲了不影響別人的使用,這些代碼都不能改。那麼此時留給我的就只有兩條路了。第一:重新把這些寫一個方法;第二:想其他辦法。因爲第一條路略顯麻煩,所以我選了第二條。
將要傳的參數進行編碼(原本嘗試過全部編碼了,但APP那邊有限制,所以後來沒成功)我試了下部分編碼,如下所示,將可能含有中文的參數進行編碼,然後再傳給APP端。讓APP端在接收時先進行解碼(原本不行就是因爲其沒有解碼)
問題也完美解決!
本篇博客寫到這裏也就結束了了,感謝大家的閱讀,歡迎大家訪問本人視頻網站使用吐槽牆功能及音樂網站。我在這兒等着你們。
最新重磅推薦:哆啦鬧鈴-電腦工作者必備工具