3

在有人建议我对此进行谷歌搜索之前,我有。我只需要更清楚地了解哪些代码页和编码。

如果我使用 UTF8 编码,并使用意大利代码页和法语代码页,这是否意味着即使字节没有改变也会得到不同的字符?

4

3 回答 3

8

乔尔对此有一个很好的总结:
http ://www.joelonsoftware.com/articles/Unicode.html

和不。如果我正确理解了您的问题,那并不意味着。当您将 UTF-8 转换为特定代码页时,可能只有部分字符会被转换。那些没有被转化的人会发生什么取决于你如何称呼转化。一个可能的结果是无法映射到代码页的字符将被转换为问号字符。

于 2008-11-03T04:28:16.237 回答
5

编码只是数值和“字符”之间的映射。

US-ASCII 将数字 65 映射到字母 A,将 32 映射到空格,将 49 映射到数字“1”。(这些东西如何呈现是另一回事。)事实上,UTF-8 也是如此!但是还有其他值 UTF-8 对待 ASCII 的方式不同。它是一种变长编码,即一个字符可以用1、2、3或4个字节编码;普通字符通常消耗较少的字节。

包括网页在内的纯文本文件以字节序列的形式存储和传输。这些字节应该代表文本的东西。软件应用程序(如文本编辑器和 Web 浏览器)负责将这些文件中的信息呈现在屏幕上。通常他们使用库或操作系统函数。

如果软件采用与创建文件的软件不同的编码,则可能会显示错误的字符!

请注意,可以在不同编码之间进行转换;但是,如果您转换为不包含特定字符的编码,则软件必须选择使用什么来代替。这种转换通常是透明地发生的(当您使用某种编码保存文件时,您输入的任何内容都必须更改为该编码)。

于 2008-11-03T06:17:20.353 回答
0

UTF-8 包含法语和意大利语代码页中的所有字符,但特定于语言的代码页不包含所有其他字符。

因此,您可以从每种语言中获取输入并将其转换为 UTF-8 进行存储,但如果您采用意大利语输入并将其显示为法语,则无法确定是否会获得正确的字符。

如果可以,请一直使用 UTF-8。

于 2008-11-03T07:54:28.237 回答