没有怎么系统学过字符集以及相关编码的东西,所以不是很明白。比方说:在内存中,如果编码方式不一样,那么相同的字符会有不同的字节表示。 而计算机是怎么知道编码方式的呢?
解决方案 »
- 如何实现不同聊天工具之间的文字图片混合复制粘贴呢?
- SOCKET代码问题
- FTP 下载文件 服务器端改变了,下载下来的却不变
- 我想自己实现一个简单的WEB服务器,谁能给我大概讲讲吗?谢谢!
- 请问如何使用Word2003的Shapes.AddLine函数?
- 如何理解SystemParametersInfo中的SPI_GETSCREENSAVEACTIVE参数?
- 关于DestroyWindow!
- 难题:如何解决这种情况下的两个线程的同步?请高手指点指点
- 史诗级问题:VS2008参考线的位置信息保存在哪个文件里面
- 用Visual C++写的win32控制台程序中能不能输出有颜色的字符?
- unicode工程中使用ansi版本的windows-api为什么汉字会变成问号?
- jameshooo 请进来接分
因此微软的API就有了字符集转换的函数了。
除非用户明确指明想得到某种形式编码的数据以下引用《Windows核心编程》中的一段话,希望有助于理解"Windows 2000 是使用Unicode从头进行开发的,用于创建窗口、显示文本、进行字符串操作等的所有核心函数都需要Unicode字符串。如果调用任何一个Windows函数并给它传递一个ANSI字符串,那么系统首先要将字符串转换成Unicode ,然后将Unicode 字符串传递给操作系统。如果希望函数返回ANSI字符串,系统就会首先将Unicode字符串转换成ANSI字符串,然后将结果返回给你的应用程序。所有这些转换操作都是在你看不见的情况下发生的。当然,进行这些字符串的转换需要占用系统的时间和内存。"
如果计算机自己知道,就不会有乱码了
各种语言的编码问题和现实世界的语言方言问题是一样的,很麻烦,茴香豆茴都有五种写法 :)
现在有了unicode,问题应该可以妥善解决,但是事实并不是这样,就如有了世界语,还是没有解决语言交流的问题一样
老程序员们习惯于ANSI,很多优秀的代码都只认ANSI,不是不得已,许多人还会那样用下去...