首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何时使用Unicode (除了非unicode!)

何时使用Unicode (除了非unicode!)
EN

Stack Overflow用户
提问于 2011-10-24 10:04:08
回答 3查看 602关注 0票数 3

我还没有找到多少关于何时使用Unicode的(简洁)信息。据我所知,许多人说最好的做法是始终使用Unicode。但是Unicode字符串确实有更多的内存占用。我说得对吗?在下列情况下,Unicode 必须只使用

  • 打印除本地(例如调试)使用的屏幕以外的内容。
  • 通常,通过网络发送任意类型的文本,两端位于不同的地区/国家。
  • 当你不确定该用哪一种

我认为如果有人能解释一下的基本原理,(简明的)关于Unicode实际发生的事情,那将是有益的。我说得对吗?当:

  • 物理(字节)字符串使用字符串的表示(代码页,其他.这已经是细节,虽然有趣)与发送者不同。

上下文在编程语言(例如C++)中使用Unicode,但是我希望这个问题的答案可以用于任何编码情况。

而且,我知道Unicode和NLS不是一回事,但是说NLS意味着使用Unicode是正确的吗?

P.S.超赞网站

EN

回答 3

Stack Overflow用户

发布于 2011-10-24 10:08:51

总是使用Unicode,它将为您和其他人节省很多痛苦。

您可能混淆的是编码问题。Unicode字符串不一定需要比等效的(或其他编码)字符串占用更多的内存,这在很大程度上取决于所使用的编码。

有时"Unicode“被用作"UCS-2”或"乌特夫-16“的同义词。严格地说,这种使用是错误的,因为" unicode“是定义字符集及其unicode编码点的标准。它做的是,而不是,它定义到字节(或单词)的映射。UTF-16、UTF-8和其他编码负责将字符映射到具体字节的工作。

票数 5
EN

Stack Overflow用户

发布于 2011-10-25 01:49:42

Unicode的美妙之处在于它使您摆脱了限制和许多令人头痛的问题。Unicode是迄今为止可用的最大字符集,即它使您能够实际编码和使用今天使用的任何中间主流语言中的任何字符。对于任何其他字符集,您都需要考虑它是否能够真正编码一个字符。拉丁文-1不能编码字符"あ",Shift-JIS不能编码字符"ڥ“等等。只有当您非常确定您将永远不需要除了基本拉丁语/阿拉伯语/日文/任何其他字符子集,您应该选择一个专门的编码,如拉丁语1,大-5,Shift-JIS或ASCII。

Unicode是可用的最通用的字符集,因此是一个很好的标准。

Unicode编码没有什么特别之处,它们只是在位表示上稍微复杂一点,因为它们必须编码更多的字符,同时仍然试图提高空间效率。有关此主题的详细介绍,请参阅每个程序员绝对、积极地需要了解编码和字符集才能处理文本。

票数 4
EN

Stack Overflow用户

发布于 2011-10-25 12:34:09

我有一个小小的功用,它有时有助于看出字符编码之间的区别。http://sodved.awardspace.info/unicode.pl。如果您将ö粘贴到Raw (UTF-8)字段中,您将看到它由不同编码中的不同字节序列表示。正如其他两个好答案所描述的,一些非unicode编码根本无法表示它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7873981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档