- 存储中文,字段是varchar,为什么不是nvarchar?
- varchar 在SQL Server中是采用单字节来存储数据,nvarchar是使用Unicode来存储数据。中文字符存储到SQL Server中会保存为两个字节(一般采用Unicode编码),英文字符保存到数据库中,如果字段的类型为varchar,则只会占用一个字节,而如果字段的类型为nvarchar,则会占用两个字节。
正常情况下,我们使用varchar也可以存储中文字符,但是如果遇到操作系统是英文操作系统并且对中文字体的支持不全面时,在SQL Server存储中文字符为varchar就会出现乱码(显示为??)。而且正常情况下,主机都会支持中文的环境,所以如果使用varchar来存储数据,在开发阶段是发现不了的,多数情况下,在布署阶段出现问题。
当然,使用nvarchar存储英文字符会增大一倍的存储空间,但是在存储代价已经很低廉的情况下,优先考虑兼容性会给你带来更多的好处.
所以在设计的时候应该尽量使用nvarchar来存储数据,只有在你确保该字段不会保存中文的时候,才采用varchar来存储。
存储中文,字段是varchar,为什么不是nvarchar?
Posted on
请问nvarchar 一般在哪些地方比较常用呢,我种方式我之前没遇到过 也算长长见识了
个人理解,在英文操作系统+英文SQL Server,里面是需要的…
这个问题还没发现过 貌似没什么意义
没遇到过这样的问题
呵呵,无聊看到的,顺手转过来了
在简单一点的理解其实就是nvarchar存的多。
呵呵,对