关于Unicode,ASCII,utf-8编码的一点理解
今天在用python读取字符串的时候出现了u'xxx'这样的字符,一查才知道这是Unicode的表示,虽然用str作了一下转换,但是心里一直对Unicode,utf-8编码等感到疑惑,等将手上的事情做完,果断上网查了一下Unicode,utf-8,ASCII的区别,看到http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html,顿时豁然开朗,作者的描述真是深入浅出,通俗易懂,不禁佩服万分。
为了检验一下自己理解的程度,就试着按照自己的理解简要地写一下这三者的区别:ASCII码就是我们学C语言时候对英文字符数字等的一些编码,只需要一个byte就能表示,这是因为英文字符少的原因,而其他语言诸如法语,德语,以至于我们的汉语,字符集都远远大于128个,所以各个国家根据自己的语言出了一套编码,比如中文的GBK。但这样一来,就会导致不同编码的文件的冲突,编码方式不对,就会出现乱码,非常不方便。随着互联网的出现,为了统一编码方式,就出现了Unicode编码,直接涵盖全世界所有的符合,成文一个极大的符号集,目前已经有100万左右的符号集,每个符号都会对应其中一个编码方式,比如汉子的“严”对应的就是4E25。但是,另外一个方面,unicode只是规定了符合的表示法,却没有规定它的存储方法,所以其实Unicode会有不同的存储方法,而Utf-8则是Unicode的一种存储方法,其他方法还有utf-8,utf-32。
至于utf-8具体的编码方式,不同编码方式的转换,这里就不作详细研究,上述提到的文章里有详细的介绍,再次感谢阮一峰的文章。
参考文章:
http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html