根据
this,
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数据的最佳方法的任何建议.