【发布时间】:2012-09-12 19:45:12
【问题描述】:
我已将数据库从 mysql 迁移到 SQL Server(政治),使用 UTF8 的原始 mysql 数据库。
现在我读到https://dba.stackexchange.com/questions/7346/sql-server-2005-2008-utf-8-collation-charset,SQL Server 2008 不支持 utf8,这是在开玩笑吗?
SQL Server 托管多个数据库,大部分是拉丁编码的。由于迁移的数据库是用于网络发布的,所以我想保留 utf8 编码。我是否遗漏了什么,或者我需要在应用程序级别进行编码/解码?
【问题讨论】:
-
其实使用UTF8是没有问题的,通过创建SQLCLR UDF,你可以从微软下载代码。检查此链接:technet.microsoft.com/en-us/library/ms160893(v=sql.90).aspx
-
值得注意的是,Java、JavaScript、DotNet 和 Windows 都在内部使用 UTF-16,因此如果您的网站要使用其中任何一种编码,那么您将保存转换为 UTF16。
-
如果有帮助,您可以假设 SQL Server 在内部将文本存储为 UTF-8;当您检索它时,驱动程序会将其转换回 UTF-16。您还可以假设 SQL Server 将文本存储为 UCS-32。内部存储格式是一个不相关的实现细节。重要的是数据库将 unicode 字符数据作为 UTF-16(匹配您的编程环境)返回。
标签: sql-server utf-8