字符编码的理解

字符编码、转码的东西困惑我很长时间,为什么要有这个东西。然后看了下资料以及百科,http://baike.baidu.com/link?url=Tm2pqNPIc9CtJxmMarwLLqNgq2ZLMmWyZf62TZ9Djb2qxSzXrnOG_Ie6DYOwsYJbw15cesdnf-ywVRho99k2wK

大概是编码是将字符X以某种编码方式A转成B存储或者传输,如果要显示B的内容,则需要告诉计算机怎样解码,如果以同一种方式A解码,则显示的内容是X,如果以另外的解码方式解码,则可能显示另外的内容,或者乱码。

将文本文件导入数据库时,经常会涉及到编码的问题,如果数据库是以utf8的方式编码和解码,则如果告诉导入的csv文件是某种编码,计算机会按照这种编码解码字符串,然后再将字符串以uft8的方式编码,存储到计算机上。如果未声明,则默认数据是以UTF8编码的,直接存储在计算机上,但是在现实时UTF8无法对存储的数据进行解码,所以出现乱码,但是如果仍然以原来的编码方式进行解码,仍然可以进行正常的显示。

转码大概是将二进制的存储数据,以正确方式解码为字符串,然后将字符串以另外的编码方式编码吧。

这样大概能解释EXCEL能正确显示ANSI存储的CSV文件而无法显示UTF8存储的文件,但是通过ADO远程取的UTF8格式的mysql数据能正常显示,按道理应该有问题啊,中间还有什么过程么?

如果我的表述或者结论有问题,希望大神们指正啊,不要让小的继续犯错误。

原文地址:https://www.cnblogs.com/business-analysis/p/3469334.html