2

我目前正在开发的网站从各种来源(人工输入)收集数据。数据存储在数据库的 Nvarchar 字段中。目前,该站点通过元标记指定字符集为 UCS-2。到目前为止,该网站要求提供英文答案。很快,我们将允许/要求至少部分字段以他们的母语(即本例中的中文)输入。根据网站上的一些研究和其他帖子,UCS-2 和 UTF-16 似乎几乎相同,但存在一些细微的技术差异。如果重要的话,这是一个在 SQL Server 数据库上运行的 asp.net 网站。所以我的问题是:

我是否有理由更改元标记以指定 UTF-16?

如果我更改编码,我会对字符的显示方式有任何问题吗?(我认为当前数据应该显示相同,因为它是大多数/全是英文,但我想确认一下)

4

1 回答 1

4

UCS-2 是 UTF-16 的严格子集——它只能在基本多语言平面(即从 U+0000 到 U+FFFF)中编码字符。如果您需要在补充平面中表达字符(包括一些比较少见的汉字),它们必须使用两个 16 位代码单元(“代理”)对进行编码,如果这样,您的数据将不是有效的 UCS-2但必须声明为 UTF-16。

如果您可以轻松地将编码规范切换为 UTF-16,则应该没有理由不立即这样做,除非您的数据正在被不知道“UTF-16”含义的古老软件使用。

于 2012-09-18T18:11:08.897 回答