84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
s按照gbk解码,在按照gbk组合成String,为什么就不是乱码了呢? 那2这个字符串是最终是什么编码 utf-8还是gbk
学习是最好的投资!
1:s.getBytes()不帶參數的話會呼叫jdk預設的編碼(你的可能是utf-8)將字串解碼成byte[],然後你使用gbk的編碼方式重新將byte[]編碼成字串,所以會出現亂碼。
2.s.getBytes('gbk')你將字串按照gbk的方式解碼後又重新使用gbk方式編碼,所以不會出現亂碼。
樓上說的沒錯,補充一點jdk的預設編碼是file.encoding中指定的编码,可以通过Dfile.encoding=GBK這樣來修改JVM的預設編碼。
file.encoding
Dfile.encoding=GBK
再補充一點編解碼的知識,「你好」這個中文要在電腦中傳輸,必然要把它轉換為2進位。怎麼轉二進位就是這裡說的解碼。 編碼的方式有很多種,例如Unicode字元集。這個字元集裡面就是各種符號對應的數字,例如你用2345來表示,然後按照一定的方式轉換的二進位(具體怎麼轉換可以網路上找一下具體過程)。 Unicode字符集。这个字符集里面就是各种符号对应的数字,比如你用2345来表示,然后按照一定的方式转换的二进制(具体怎么转换可以网上找一下具体过程)。接收到这一串二进制数,怎么转为汉字就是这里说的编码。编码需要按照一定的方式去解才能得到正确的字符对应关系,比如你的二进制为0101010010,需要按照utf-8的方式去编码才能得到你接收到這一串二進制數,怎麼轉為漢字就是這裡說的
Unicode
你
0101010010
1:s.getBytes()不帶參數的話會呼叫jdk預設的編碼(你的可能是utf-8)將字串解碼成byte[],然後你使用gbk的編碼方式重新將byte[]編碼成字串,所以會出現亂碼。
2.s.getBytes('gbk')你將字串按照gbk的方式解碼後又重新使用gbk方式編碼,所以不會出現亂碼。
樓上說的沒錯,補充一點jdk的預設編碼是
file.encoding
中指定的编码,可以通过Dfile.encoding=GBK
這樣來修改JVM的預設編碼。再補充一點編解碼的知識,「你好」這個中文要在電腦中傳輸,必然要把它轉換為2進位。怎麼轉二進位就是這裡說的解碼。
編碼🎜。編碼需要按照一定的方式去解才能得到正確的字元對應關係,例如編碼的方式有很多種,例如
Unicode
字元集。這個字元集裡面就是各種符號對應的數字,例如你
用2345來表示,然後按照一定的方式轉換的二進位(具體怎麼轉換可以網路上找一下具體過程)。Unicode
字符集。这个字符集里面就是各种符号对应的数字,比如你
用2345来表示,然后按照一定的方式转换的二进制(具体怎么转换可以网上找一下具体过程)。接收到这一串二进制数,怎么转为汉字就是这里说的编码。编码需要按照一定的方式去解才能得到正确的字符对应关系,比如
你
的二进制为0101010010
,需要按照utf-8的方式去编码才能得到你
接收到這一串二進制數,怎麼轉為漢字就是這裡說的你
的二進位為0101010010
,需要按照utf-8的方式去編碼才能得到你
這個符號並顯示出來。 🎜