在数据库中我们通常会遇到字符串与Unicode字符串,对于想我这样的初学者很多人是有很多疑问的,对此我把这个问题整理一下,方便自己与大家对知识的掌握。

字符串:(1)Char:固定长度,长度为n个字节,取值范围1~8 000,存储大小是n个字节。

(2)Varchar:可变长度,n 的取值范围为1-8 000 。max 指定最大存储大小是 2^31-1 个字节。存储大小是输入数据的实际长度加两个字节。所输入数据的长度可以为0个字符。

(3)Text:长度可变,最大长度为2^31-1(2 147 483 647)个字符。

Unicode字符串:(1)Nchar:n 个字符的固定长度的Unicode字符数据。n值必须在1~4 000 之间。存储大小为两倍的n字节。

(2)Nvarchar:长度可变的Unicode字符数据。n 值在1~4 000 之间。max 指定最大存储大小为2^30-1 个字节。存储大小是所输入字符个数的两倍加两个字节。所输入数据的长度可以为0 个字符。

(3)Ntext:长度可变的Unicode数据,最大长度为2^31-1(1 073 741 823)个字符。存储大小是所输入字符个数的两倍(以字节为单位)。

它们的用法是一样的,但是Unicode支持的字符范围更大,存储 Unicode 字符所需要的空间更大。
              Unicode 数据
                         Unicode 标准为全球商业领域中广泛使用的大部分字符定义了一个单一编码方案。所有的计算机都用单一的 Unicode 标准 Unicode 数据中的位模式一致地翻译成字符。这保证了同一个位模式在所有的计算机上总是转换成同一个字符。数据可以随意地从一个数据库或计算机传送到另一个数据库或计算机,而不用担心接收系统是否会错误地翻译位模式。
                         对于用一个字节编码每个字符的数据类型,存在的问题之一就是此数据类型只能表示 256 个不同的字符。这就迫使对于不同的字母表(例如相对较小的欧洲字母表)采用多重编码规格(或者代码页)。而且也不可能处理象日文汉字或韩国文字这样具有数千个字符的字母表。
                         每个 Microsoft SQL Server 排序规则都有一个对表示 char、varchar 和 text 值中的每个字符定义位模式进行定义的代码页。可为个别的列和字符常量指派不同的代码页。客户端计算机使用与操作系统区域设置相关联的代码页解释字符位模式。有很多种不同的代码页。一些字符出现在某些代码页上,但并不出现在其它的代码页上。某些字符在一些代码页上用一个位模式定义,而在其它的代码页上却用另一个位模式定义。当您设计必须处理不同语言的国际性系统时,为了满足不同国家/地区的语言需求,给所有的计算机挑选代码页就变得困难了。要保证每一台计算机与使用不同代码页的系统交互时都进行正确的翻译也是困难的。
                         Unicode 规格通过采用两个字节编码每个字符使这个问题迎刃而解。转换最通用商业语言的单一规格具有足够多的 2 字节的模式 (65,536)。因为所有的 Unicode 系统均一致地采用同样的位模式来代表所有的字符,所以当从一个系统转到另一个系统时,将不会存在未正确转换字符的问题。通过在整个系统中使用 Unicode 数据类型,可尽量减少字符转换问题。

UniCode与非UniCode的区别相关推荐

  1. 转 Applocale:非Unicode程序界面乱码解决方法笔记

    转 Applocale:非Unicode程序界面乱码解决方法笔记 2008年11月25日 星期二 下午 1:33 注: 为了不让 pAppLocale 消失 我也做了个下载备份 地址: http:// ...

  2. SQL 中 unicode字符和非unicode字符的区别

    unicode字符就是一些标准的字符,例如英文.数字,不支持汉字. 非unicode是包含汉字和一些特殊字符 nvarchar支持汉字,但是每一个字符占用两个字节 比如有这样的字段:[Name] [n ...

  3. UTF8、unicode、GB2312、ASCII区别

    简述: ASCII和Unicode都是编码规定,只是一个符号集 在ASCII码中,一个汉字占2个字节(一个字符占一个字节) 在Unicode编码中,一个汉字占2个字节(一个字符同样占两个字节,所以JA ...

  4. 常见非Unicode编码

    常见非Unicode编码 下面我们看一些主要的非Unicode编码,包括ASCII.ISO 8859-1.Windows-1252.GB2312.GBK.GB18030和Big5. 1.ASCII 世 ...

  5. 让英文版windows 8支持非Unicode程序的语言方法

    Control Panel\Clock, Language, and Region 点击 Region change system locle 非Unicode程序的语言,只要将当前非Unicode程 ...

  6. ascii码 iso 8859-1 Unicode 字符编码 UTF8编码 区别 表格

    第一:编码简单描述 一.ASCII码:美国佬最初把自己的语言用计算表示,发现 0--127  能把字母表+其它符号全能表示出来 二.  iso 8859-1:欧洲人,0---127 是ASCII码,1 ...

  7. VB 文件编码互换模块(支持 Ansi,UTF-8,Unicode(little endian),Unicode big endian)

    'VB 文件编码互换模块,支持对Ansi,UTF-8,Unicode(little endian),Unicode big endian编码之间进行转换. Option Explicit Privat ...

  8. python的unicode编码_python unicode编码

    遇到编码问题,查阅了一些资料,有了一些理解,简单记录下. 首先,Unicode有个通用字符集 其次,每个字符有个编号(编码,即code points),规范为U+hhhh,其中每个h代表一个十六进制数 ...

  9. C#中静态方法和非静态方法的区别

    静态方法和非静态方法的区别: 1.静态方法不需要类实例化就可以调用,反之非静态方法需要实例化后才能调用: 2.静态方法只能访问静态成员和方法,非静态方法都可以访问: 3.静态方法不能标记为overri ...

最新文章

  1. 几种民间排毒养颜祛痘DIY自制面膜 - 健康程序员,至尚生活!
  2. 全国自考微型计算机原理及其应用,2010年10月全国自考微型计算机原理及应用试题...
  3. name optimize is not defined 怎么解决_Web前端:怎么在JavaScript中比较对象?
  4. 中国茶叶行业投资策略分析预测及发展发展规划咨询报告2022年版
  5. 【FI学习笔记】AR部分快速IMG配置
  6. 安装win2008R2启动修复失败
  7. 各个硬件指令集使用简单介绍
  8. java反射 数组类型_Java反射-数组
  9. java des加密类_java的DES加密解密辅助类
  10. oracle中trunc x-1,oracle中trunc函数的说明
  11. html5 history api_window.history的跳转探索
  12. Atitit 运维之道 v2 s09.docx Atitit 运维之道 目录 1. 概念 2 1.1. devops算是最低门槛了。什么运维平台,搞来搞去也就那些东西。无外乎cmdb、部署、监
  13. CTF之做题总结(二)
  14. 网络中的三张表——ARP表、MAC表、路由表
  15. 数据库中update的用法
  16. 448. Find All Numbers Disappeared in an Array -- Python
  17. 带你读懂《深入理解计算机系统》开篇
  18. 解决电脑端微信浏览器不支持vue、axios等问题
  19. CAD控件:界面控制说明和方法
  20. 影版《宫》曝海报 周冬雨:想与张艺谋再合作

热门文章

  1. Winform动态增加ComboBox后SelectedValue无效的问题
  2. ChatGPT逼急谷歌,劈柴发全员信:别慌,迟到也能赢!
  3. C/C++代码规范点检表
  4. ESP32 (ESP-Moonlight) 系列笔记
  5. PyTorch中 tensor.detach() 和 tensor.data 的区别
  6. 9.7.2. SIMILAR TO Regular Expressions
  7. java 图片压缩 图片添加水印 thumbnailator javafx
  8. C语言 | 10 结构体与共同体
  9. 006❤网络瓶颈效应
  10. 使用lm-sensors和Net-SNMP监控计算机硬件