如何应对各种乱码问题

pogx原创:转载请声明出处

可以说乱码这个问题是一个非常令人头痛的问题,如果一个程序员没有因为乱码而为难过,那么我相信这个程序员的经历确实太平淡了。

首先弄清楚几个概念

1.编码(动词):把明文的字符序列转换成计算机理解的二进制序列称为编码

2.解码:把二进制序列转换成普通人能看懂的明文字符串称为解码

3.字符集:顾名思义,字符集就是字符的集合。我们通常说某某字符集,比如ACSII,UTF-8等,其实就是把字符和 二                                进制序列一一对应。

                

然后我们来分析下导致乱码的原因是什么?我们应该怎么处理呢?

首先我还要讲一个概念,文件

文件是数据的载体,计算机把数据从磁盘中的文件中读入内存,是通过对文件进行读写。一般是以流的方式进行读写,文件在这里就像一个能装东西的盒子,我们插根管子就能读取东西,至于文件在磁盘中是如何存放的,我们不用关心。有时候我们会说某个文件是文本文件,某个文件是图片文件,某个文件是pdf文件等等啦。

其实对于计算机来说,无论什么文件里面都是二进制序列。当我们以图片的规则打开一个图片文件,此时就能把存放在磁盘中的二进制序列转化为图片的形式,这个过程就是一个解码的过程。如果你的解码规则不符合,那就会导致乱码。比如你用一个文本编辑器去打开一个图片文件,结果肯定是乱码的形式。因为你用文本的编码规则打开图片的二进制序列,文件编辑器按照文本的规则去翻译二进制序列,肯定是翻译不通的。就好像你用英语的语法规则去把某个文章翻译成日语,结果肯定对不上号。这就是导致乱码的原因。

讲到这里大家应该能够知道怎么解决乱码了吧。

好,我还是来总结一下吧

首先要解决乱码,最根本的一点就是,文件或数据的编码规则和解码规则一定要相同。

下面附上我解决数据库中文乱码问题的笔记


1,  首先我们eclipse中java文件应该统一保存为utf-8编码,以防止乱码出现

2,  数据字符集比较多,分为如上图描述几种,我们应该把其全部统一为utf-8编码

这时就需要在mysql数据配置文件—my.ini中配置默认编码


最后说一句,如果你不懂,或者你嫌麻烦,那你就把所有能设置的编码全部统一,一般我们统一为UTF-8




阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭