在任何人建议我对此进行谷歌搜索之前,我有.我只需要更清楚一下代码页和编码.
如果我使用UTF8编码,并使用意大利语代码页然后使用法语代码页,这是否意味着即使字节没有改变,也会得到不同的字符?
Joel对此有一个很好的总结:http:
//www.joelonsoftware.com/articles/Unicode.html
和不.如果我正确理解你的问题,那并不意味着.当您将UTF-8转换为特定代码页时,可能只会转换某些字符.未转换的内容会发生什么变化取决于您如何调用转换.可能的结果是无法映射到代码页的字符将转换为问号字符.
编码只是数值和"字符"之间的映射.
US-ASCII将数字65映射到字母A,将32映射到空格,将49映射到数字"1".(如何渲染这些东西是另一回事.)事实上,UTF-8也是如此!但是还有其他值,UTF-8对待ASCII的方式不同.它是可变长度编码,即字符可以用1,2,3或4字节编码; 常见字符通常消耗较少的字节.
纯文本文件(包括网页)作为字节序列存储和传输.这些字节应该代表文本.软件应用程序(如文本编辑器和Web浏览器)负责在屏幕上呈现这些文件中的信息.通常他们使用库或OS功能.
如果软件采用与创建文件的软件不同的编码,则可能会显示错误的字符!
请注意,可以在不同的编码之间进行转换; 但是,如果转换为不包含特定字符的编码,则软件必须选择使用什么.这种转换通常是透明的(当您使用特定编码保存文件时,无论您输入什么,都必须更改为该编码).