中文乱码的产生原因主要是什么
中文乱码的产生原因:解码方式和编码方式不一致。一个中文字符以utf-8编码会转成3个byte,如果以gbk编码会转成2个byte;而一个英文字符以utf-8编码会转成1个byte,如果以gbk编码会转成1个byte。
中文乱码是什么东西
不知道有没有人这样认为过,一个字符串不仅仅包含字符,还有隐藏着它的编码信息。比如java中String str = "你好";我之前是这样认为的,str这个字符串隐藏着它的编码方式unicode编码或者gbk、iso-8859-1等。这种理解是错误的,字符就是字符没有任何其他信息,正确的理解应该是,人在一个文件中所看到的字符串是系统经过把内存中的数码信息读取也再解码成一些字符最后显示,就是当你双击打开一个文本文件时系统会把内存的数码信息读取显示出来,当你保存一个文本文件时系统会把这个文件以你所设置的编码方式编码,再放进内存中。
所以说乱码也是一些字符,只是奇怪的字符而已,并没有什么”码“。