webservice 位元組流亂碼

2021-09-01 05:21:22 字數 486 閱讀 7160

今天遇到乙個比較棘手的問題:本地eclipse工程師utf-8的編碼,tomcat也是這個編碼,由於要在webservice中傳遞byte陣列,目的是壓縮以保證大批量資料的可靠傳輸,

問題出現了,對方介面是服務端,並且測試和生產環境都需要gbk編碼的格式,這樣導致了對方給我傳遞的編碼是gbk,我輕鬆解壓開gbk就不會亂碼,道理大家都明白,gbk是utf的真子集。

我用utf-8發的位元組流自然對方不能用gbk編碼,但是對方也不能用utf編碼,因為這是個通用介面,服務端不能按照客戶端的要求來改,而且是老系統,影響比較大,無奈,我改!

什麼new string(***.getbyte,"utf-8")new string(***.getbyte,"gbk") 還試了二者的n種組合,結果還是不行。

於是想到也行不用new ,查一下google,發現按照指定字符集可以獲得字串的編碼sxml.getbytes(charset.forname("gbk")) 搞定!但是還是不太理解為什麼new 不行。

位元組流亂碼與字元流亂碼

本文總結自 前提 資料展示過程 資料寫入response容器,瀏覽器解析response容器 位元組流亂碼問題 如果用response.getoutputstream.write 中國 getbytes utf 8 寫入流 把 中國 以utf 8的格式存入response容器 瀏覽器上會展示亂碼。原...

位元組流亂碼,字元流亂碼問題

位元組流亂碼問題 如果用response.getoutputstream.write 中國 getbytes utf 8 寫入流 把 中國 以utf 8的格式存入response容器 瀏覽器上會展示亂碼。原因 瀏覽器預設使用碼表gb2312來展示資料,因此會出現亂碼。解決方法 可以通過設定conte...

網路位元組流和主機位元組流

位元組流分為兩類 little edition le big edition be 0x123456 在兩種位元組流中的儲存方式 位址 le be 0x0000 56 12 0x0001 34 34 0x0002 12 56 主機位元組流根據cpu型別而定 網路位元組流採用be格式 為了進行轉換 b...