我真的在努力提高自己的技能。我对国际化概念这样的东西有一定的实用经验,但是我需要更好地了解背后的理论知识。
我已经阅读了Spolsky的文章,但我仍然不清楚,因为这三个术语经常会被混淆使用,即使在那篇文章中也是如此。我认为其中至少两个是在谈论同一件事情。
我怀疑很多开发者每天都在应对这些问题而匆忙通过,但我不想再成为那些开发者之一。
我真的在努力提高自己的技能。我对国际化概念这样的东西有一定的实用经验,但是我需要更好地了解背后的理论知识。
我已经阅读了Spolsky的文章,但我仍然不清楚,因为这三个术语经常会被混淆使用,即使在那篇文章中也是如此。我认为其中至少两个是在谈论同一件事情。
我怀疑很多开发者每天都在应对这些问题而匆忙通过,但我不想再成为那些开发者之一。
字符集就是包含可使用的字符的集合。
每个字符都映射到一个称为代码点的整数。
这些代码点在内存中的表示方式就是编码。编码只是将代码点(U+0041 - 字符'A'的Unicode代码点)转换为原始数据(位和字节)的方法。
>> 'a'.codepoints.to_a
=> [97]
>> '€'.codepoints.to_a
=> [8364]
>> 'a'.bytes.to_a
=> [97]
>> '€'.bytes.to_a
=> [226, 130, 172]
以下是使用 ISO-8859-15 字符集 的相同内容:
>> 'a'.encode('iso-8859-15').codepoints.to_a
=> [97]
>> '€'.encode('iso-8859-15').codepoints.to_a
=> [164]
以及ISO-8859-15 编码:
>> 'a'.encode('iso-8859-15').bytes.to_a
=> [97]
>> '€'.encode('iso-8859-15').bytes.to_a
=> [164]
ISO/IEC 8859-1
,据说这是ISO标准(由于ISO的付费墙无法确定)。该标准不包括控制字符,但代码页包括(00
-1F
和7F
-9F
)。谁定义了代码页编码并做出了决定?然后,windows-1252
代码页将某些控制字符编码替换为不同的可打印字符编码。希望您能在该示例的背景下进行更详细的解释。谢谢! - mattpr