奇怪的亂碼問題-Java中輸出的工具以及編碼解碼的工具

亂碼在我們的開發中還是比較常見的,一不小心就會出現亂碼的情況。問題是有的亂碼很容易解決,只是因爲粗心大意,而有的卻不太好解決。

通過本篇博文,你將主要學習到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端在接收時先進行解碼(原本不行就是因爲其沒有解碼)

問題也完美解決!

本篇博客寫到這裏也就結束了了,感謝大家的閱讀,歡迎大家訪問本人視頻網站使用吐槽牆功能及音樂網站。我在這兒等着你們。

最新重磅推薦:哆啦鬧鈴-電腦工作者必備工具

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章