我认为这个问题非常简单,在基本平面之后我是否需要使用Unicode中的所有其他内容?包含什么样的东西,真的需要吗? (为了什么目的?)
感谢。
答案 0 :(得分:10)
如果您打算在中国销售任何产品,则GB 18030标准是强制性的,并且需要超出BMP(基本多语言平面)的字符。该标准是强制执行的,为了在那里销售,您需要通过GB 18030认证。
日本和香港也有国家标准要求BMP以外的人物。 即使这些标准没有像中国标准那样强制执行,支持它们可能会给你一些优势。
所以简单的答案就是:你需要一些东西。
=== 2016 ===
那是7年前的事。现在每个人都在谈论表情符号。好吧,大多数表情符号超出了BMP: - )答案 1 :(得分:7)
这取决于您是否控制数据。如果您使用的是除您以外的任何人的Unicode数据,您通常必须假设它可能包含补充字符,这反过来意味着您需要处理4字节UTF-8,UTF-16代理字符等。< / p>
答案 2 :(得分:2)
请参阅complete list of character charts。
补充字符目前包含古代脚本。除非你的应用程序应该处理像Kharoshthi,Old Persion和Cuneiform这样的古代脚本,否则可能不是。
如果您遇到未完成的UTF-8或UTF-16实施,我想您只需处理此问题。 UTF-8的某些实现不支持4字节字符,这是辅助平面:U + 10000以上的字符。想到MySQL。
答案 3 :(得分:2)
如果可能的话,您应该尝试支持所有Unicode,包括补充平面。现在有生活语言坐在Miao等辅助平面上。未来将增加其他生活语言,目前一些语言需要辅助私人使用区域。然后还有Mihai Nita在answer中所说的话。
MySQL,从5.5开始,也是supports辅助平面。
最好花一点时间来完全支持Unicode,以便将来如果你真的需要它就不会有问题。而且您不知道谁将使用您的软件以及他们将来会使用哪些脚本。现在大多数渲染引擎,GUI工具包,浏览器,操作系统等都可以毫无困难地支持它。
虽然这个问题是在几年前提出来的,但我在搜索时遇到了这个问题,从那以后情况发生了变化。我目前正在处理程序员假设不需要补充飞机支持或者未经测试的问题。