HTTP傳輸過程中錯誤解決com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 13
今天在跟安卓端調試程序的時候,安卓端傳輸過來有中文的地方突然就報了上述錯誤
說明:服務器端用的是restful架構
具體表現爲,json轉換報錯,只能在http請求的地址中看到參數,程序中輸出只有前面沒有中文的一部分,在地址中原本是中文的地方被空格還是tab製表符替代了——又是中文亂碼問題
中文亂碼問題本來之前調好了的,感覺莫名其妙,後來嘗試了一些網上的辦法,都沒有奏效;後來準備放棄,把中文轉成16進制字符串傳輸算了,但是在這個過程中突然發現了URLEncoder.encode(String s, String enc)
這個方法,然後查閱了一些資料以及做了一些嘗試,後來發現只需要將中文部分進行URLEncoder.encode("中文部分", "utf-8")
處理後就好了。並且之前的對亂碼的處理new String (string.getBytes("ISO-8859-1"), "utf-8")
也不需要了,在程序裏直接打印出來就是中文。
這裏提醒一下大家的就是,在json的轉換中,記得千萬不要出現空格,似乎出現空格也是報這個錯