Les*_*nes 4 sql-server encoding varchar nvarchar
我正在构建一个网站,其中可能包含客户端未指定的 unicode 字符,我想使用 nvarchar 作为 sql 服务器上的数据类型。使用 nvarchar 相对于 varchar 有什么缺点吗?
如果 nvarchar 可以容纳比 varchar 更多的字符,为什么有人会想使用 varchar 而不是 nvarchar。使用 nvarchar 的唯一缺点是 nvarchar 中的数据比 varchar 中的数据更大吗?
另外,Nvarchar 还可以存储 varchar 存储的所有字符吗?
我认为您提出的(间接)观点是您几乎总是想使用它。一般来说,最好从一开始就接受 unicode 数据,否则您最终会遇到您不想要的遗留问题。您会惊讶地发现您可以忽略预期输入的内容。由于需要处理国际化输入,系统往往会变得比您预期的更大。您需要限制某些字段。例如,如果您要存储域名,那么跨系统对多语言字符的支持可能仍然不可靠(正在开发中),因此您需要限制此类内容的输入。在这些情况下,您需要在更高级别限制输入,例如通过 UI 级别的正则表达式,否则如果您在数据库中声明了 varchar 字段,您最终会得到完全错误的字符如果 unicode 字符确实成功通过,则会被存储。
如今,空间不再是问题,但存在性能方面的考虑,尽管场景不太可能超过可扩展性的需求:
https://msdn.microsoft.com/en-us/library/ms189617.aspx
关键的一点是,您需要明确指定在整个应用程序层中一致使用 UTF-8,以获得全面的国际支持。
| 归档时间: |
|
| 查看次数: |
2219 次 |
| 最近记录: |