管理 Unicode 编码方案之间的数据转换

本主题说明了当服务器端数据存储和与数据交互的客户端应用程序都支持 Unicode,但使用不同的 Unicode 编码方案时,如何保留字符数据的完整性。SQL Server 将 Unicode 存储在 UCS-2 编码方案中。但是许多客户端在另一个编码方案中处理 Unicode,此方案通常是 UTF-8,它经常发生在基于 Web 的应用程序中。

由于实质上仍然是从一个编码方案转换为另一个编码方案,因此在本主题中讨论的解决方案许多都是在管理 Unicode 服务器与非 Unicode 客户端之间的数据转换管理客户端/服务器代码页之间的数据转换主题中也讨论到的。发送到服务器的 Unicode 字符串常量前面必须加上大写字母 N。对于基于 Web 的应用程序,应指定客户端 HTML 页的 META 属性下的 CHARSET 代码。例如,如果 Unicode 编码方案为 UTF-8,则指定 CHARSET = utf-8。在服务器端,应使用 Session.CodePage 属性或 @Codepage 指令来指定客户端的编码方案。例如,codepage = 65001 指定了 UTF-8 编码方案。如果按照这些指示进行操作,Internet 信息服务 (IIS) 5.0 或更高版本将会流畅地处理从 UTF-8 到 UCS-2 的转换并返回(而不在客户端进行其他操作)。

在 Visual Basic 应用程序中,将在 UCS-2 编码方案中处理字符串。因此,无需明确指定这些应用程序与 SQL Server 实例之间的编码方案转换。