varchar 保存英文中文区别。
varchar在SQL Server中是采用單字節(jié)來存儲數(shù)據(jù)的,中文字符存儲到SQL Server中會保存為兩個字節(jié),英文字符保存到數(shù)據(jù)庫中,如果字段的類型為varchar,則只會占用一個字節(jié),而如果字段的類型為nvarchar,則會占用兩個字節(jié)。 varchar(40),能存儲40個字節(jié)長度的字符,存儲中文字符的時候,因為中文字符1個字符就等于2個字節(jié),所以varchar(40)只能存儲20個中文字符。nvarchar(40),就可以存儲40個中文字符,也就是說可以存儲80個字節(jié)長度的字符。nvarchar要相對于存儲的字符類型.
正常情況下,我們使用varchar也可以存儲中文字符,但是如果遇到操作系統(tǒng)是英文操作系統(tǒng)并且對中文字體的支持不全面時, 在SQL Server存儲中文字符為varchar就會出現(xiàn)亂碼(顯示為??).而且正常情況下,主機都會支持中文的環(huán)境,所以如果使用varchar來存儲數(shù)據(jù),在開發(fā)階段是發(fā)現(xiàn)不了的.多數(shù)情況下,在布署的時候也不會有問題.但是!如果布署的主機是英文操作系統(tǒng),并且不支持中文環(huán)境,那問題就出來了.所有的varchar字段在存儲中文的時候都會變成亂碼(顯示為??).而且一般情況下你不會知道這是因為你采用了錯誤的數(shù)據(jù)類型來存儲所造成的,你會試著去裝中文字體,試著去設(shè)置操作系統(tǒng)的語言環(huán)境...這些都不能解決問題,唯一能解決問題的是把數(shù)據(jù)庫字段的類型個性為nvarchar(或者nchar).對項目管理比較熟悉的朋友應該都知道,到布署階段再來修改數(shù)據(jù)庫是一個很恐怖的事情.
轉(zhuǎn)載于:https://www.cnblogs.com/suncan0/p/4738255.html
總結(jié)
以上是生活随笔為你收集整理的varchar 保存英文中文区别。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下的二进制文件的编辑和查看 -
- 下一篇: Android ImageView图片代