据此,SQL Server 2K5 在内部使用 UCS-2 。它可以在 UCS-2 中存储 UTF-16 数据(具有适当的数据类型,nchar 等),但是如果有补充字符,则将其存储为 2 个 UCS-2 字符。
这给字符串函数带来了明显的问题,即 SQL Server 将一个字符视为 2。
令我有些惊讶的是,SQL Server 基本上只能处理 UCS-2,甚至更多,以至于这在 SQL 2K8 中没有得到修复。我很欣赏其中一些角色可能并不那么常见。
除了文章中建议的函数之外,还有关于在 SQL Server 2K5 中处理(损坏的)字符串函数和 UTF-16 数据的最佳方法的任何建议。