SQL Server的utf8 howto?
我已经从MySQL数据库迁移到SQL Server(政治),原始的MySQL数据库使用UTF8。
现在我读了SQL Server 2008不支持utf8的https://dba.stackexchange.com/questions/7346/sql-server-2005-2008-utf-8-collation-charset ,这是个玩笑吗?
SQL Server承载多个数据库,大部分是拉丁文编码的。 由于迁移数据库旨在用于Web发布,我想保持utf8编码。 我是否错过了某些东西,或者是否需要在应用程序级别进行编码/解码?
没有! 这不是一个笑话。
看看这里: http : //msdn.microsoft.com/en-us/library/ms186939.aspx
字符数据types是固定长度,nchar或可变长度,nvarchar,Unicode数据并使用UNICODE UCS-2字符集。
另外在这里: http : //en.wikipedia.org/wiki/UTF-16
较早的UCS-2(2字节通用字符集)是一种类似的字符编码,它在1996年7月的Unicode标准2.0版中被UTF-16所取代。
UTF-8不是一个字符集,它是一种编码。 UTF-8的字符集是Unicode。 如果要存储Unicode文本,请使用nvarchar
数据types。
如果数据库将使用UTF-8来存储文本,那么您仍然不会将文本作为编码的UTF-8数据获取,您可以将其作为解码文本输出。
您可以轻松地将UTF-8编码的文本存储在数据库中,但不会将其存储为文本,而是将其作为二进制数据( varbinary
)存储。
请注意,从Microsoft SQL Server 2016起, bcp
, BULK_INSERT
和OPENROWSET
支持UTF-8。
附录2016-12-21:SQL Server 2016 SP1现在为所有版本的MS SQL(包括Standard和Express)启用Unicode压缩(以及其他大多数以前仅用于Enterprise的function)。 这与UTF-8支持并不相同,但如果目标是减less西方字母的磁盘空间,它也会带来类似的好处。
实际上使用UTF8没有问题,通过创buildSQLCLR UDF,您可以从Microsoft下载代码。 检查此链接: http : //technet.microsoft.com/en-us/library/ms160893(v=sql.90).aspx
- MS SQL Server的“之间”是否包含范围边界?
- 我可以在脚本或存储过程中创build一次性使用function吗?
- configurationpipe理器不存在于命名空间System.Configuration中
- 在连接行时,FOR XML PATH('')如何工作
- 连接string中的Trusted_Connection和Integrated Security之间有什么区别?
- 如何在我的列上创build唯一约束(SQL Server 2008 R2)?
- MySQL和SQL Server之间的区别
- SQL Server恢复错误 – 访问被拒绝
- 安装SQL Server 2008 Developer时需要使用什么帐户