咱们丢弃这些专业术语,直接上最通俗的人话。
1.首先我们先理解一下什么是编码?
其实对于编码这件事,我们每个人都不陌生,我们在学习汉字,单词的时候,其实本质之一就是在学习编码。同样的意思,你用汉字编码就是我爱你,你用英文单词编码就是I Love You。
2.跟编码成对出现的动作是解码。
你翻开一本书,看到(别人用英文写的)I Love You的时候,你就要用英文的思想去理解,去解码。
3.为什么会出现乱码的现象?之所以出现乱码,就是编码时使用的方式和解码使用的方法不配套。你用UTF-8方式编的码,又用GBK去解码,就会出问题。
那是不是编码和解码不相同时,一定会出现乱码呢?不是,像印度、日本、马来西亚这些国家,你说本国语和英语他们都能识别,你可以把本国语加英语放在一样看成一个编码方式。你用印度语+英语编码,再用日本语+英语解码,因为有重合的部分,英语那部分就不会出现乱码。
我相信计算机用GBK解码去看UTF-8编码时的感觉和我们看日语、韩语、甲骨文时的感觉是一样的!
4.说到这,补充一下,因为计算机是美国发明的,加上英文又是全球通用语言,英语和编程语言,英语和计算机语言之间有着天然的近水楼台的关系。
举一个例子,有一些软件在安装的时候,如果你指定了中文的安装路径,甚至中文括号,它就无法正常运行,比如PLSQL Developer 8,这也是为什么,很多程序员在安装所有软件的时候养成的习惯是安装目录绝对不允许出现中文的汉字,还有标点符号,这也是数据库开发人员ÿ