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