允许简体中文输入

本文关键字:输入 简体中文 | 更新日期: 2023-09-27 18:28:45

我工作的公司正在竞标一个项目,该项目需要我们的电子商务解决方案接受简体中文输入。经过一点研究,ASP.net似乎让全球化配置变得很容易:

<configuration>
  <system.web>
    <globalization
      fileEncoding="utf-8"
      requestEncoding="utf-8"
      responseEncoding="utf-8"
      culture="zh-Hans"
      uiCulture="en-us" />
  </system.web>
</configuration>

问题:

  1. 这真的是ASP.net的全部吗?这似乎是真的
  2. SQL Server 2005是否有任何DB注意事项?DB会接受简体中文而不进行额外配置吗

允许简体中文输入

广告1。真正的问题是,国际化要走多远。因为i18n不仅允许Unicode输入。您至少需要支持本地日期、时间和数字格式,本地排序(主要与排序有关),并确保您的应用程序在本地化的操作系统上正确运行(除非您正在开发云托管解决方案)。你可能想在这里阅读更多关于这个主题的内容。

就支持汉字输入而言,如果你要在中国提供软件,你至少需要支持GB18030-2000。要做到这一点,您需要使用正确的.Net Framework版本——支持Unicode 3.0的版本。我相信它在.Net Framework 2.0之后就得到了支持。
但是,如果您想更进一步(这可能是获得竞争优势所必需的),您可能需要支持GB18030-2005。唯一的问题是,在这个过程中,对这些字符(CJK统一象形文字扩展B)的完全支持后来发生了(我真的不确定它是Unicode 6.0还是Unicode 6.1)。因此,您可能被迫使用最新的.Net Framework,但仍然不能确定它是否涵盖了所有内容
您可能想阅读有关汉字的Unicode常见问题解答。

广告2。我强烈建议您不要使用带有中文字符的SQLServer2005。原因是,旧的SQL Server引擎只支持UCS-2,而不支持UTF-16。这可能看起来有点不同,但这确实给4字节的汉字带来了问题。实际上,您希望能够在查询中使用它们(即LIKE或WHERE子句)-您将收到所有记录。这就是它的工作原理。为了支持它们,您需要设置非常具体的中文排序规则,这将破坏对其他语言的支持
基本上,将SQLServer2005与汉字一起使用是一个糟糕的想法。

首先,我想知道您是否确定使用zh-Hans(一种中性区域性)选择了正确的区域性标识符。也许你更适合针对特定的文化,比如zh-CN(中文在中国使用),如果这是你想要支持的市场。

其次,如果您正在计划专门针对此区域性的部署,则可以使用web.config文件设置区域性。通常,您需要一个相同的部署来动态适应最终用户的文化,在这种情况下,您可以基于URL方案(例如www.myapp.com将使用en-US,www.myapp.com/china将使用zh-CN)或accept languages标头或应用程序内语言选择器,以编程方式设置Thread.CurrentCulture(如果您提供本地化资源,甚至可以设置Thread.CurrentUICulture)。

除了Paweł提到的Unicode限制(这意味着你可能真的需要使用最新的.NET Framework/SQL Server)之外,对于简体中文,你不需要做任何具体的事情——如果你遵循标准的国际化准则,你就应该做好准备。顺便说一句,也许你应该考虑将你的应用程序本地化(翻译)成中文。

关于SQL Server,Paweł的观点似乎非常明确。也就是说,只要你使用nvarchar数据类型(Unicode),并且你不在这些列上运行查询,也不在DB端根据这些列对它们进行排序,如果你在SQLServer2005上遇到任何问题,我会感到惊讶。所以这实际上取决于你如何处理这些数据。