关于汉字、乱码这些的编码问题我确实纠结过很久。
看过不少资料,讲解。但仍然有点绕:
所以我想整理一下我的困惑,清晰地通过一个场景一一列出来,望大佬们能帮助我一下,谢谢。
首先比如:
代码
char* str= "A中文"//
printf("%s\n",str);
1、我认为就这里代码中所显示的中文一定有一个编码(比如0011010101110...)的。这么说对吧?比如是某个字符集A的"A中文"的编码
2、如果我在1中的想法是正确的,那么,我如何去找他的编码在哪里(A是在那里设置的)?
3、拓展一下,比如某个文档有字符,但是是乱码,肯定是使用的字符集不匹配。那么如何才能知道这个文档使用的是哪个字符集呢?是靠经验然后,猜测、尝试吗?
4、接着就是运行了,如果没有记错的话,我记得,这个程序打印出来的字符串就有可能使乱码。这是为什么?难道使用的不是同一个字符集A吗?如果不是,那么程序在解码这个(0011010101110...)的时候,采用的字符集(B)我是如何知道它的采用地是字符集B呢(在哪里看到的,B是在哪里设置的)?
5、中文那么多字符集。加入当我遇到了(程序中、文档中、网页上、代码中等等)乱码、正确地解决姿势应该是如何的呢?
暂时理清的问题就以上了。希望能不吝教导。谢谢大家了