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的方式去编码才能得到你
这个符号并显示出来。🎜