请问nvarchar(10)能保存几个utf-8汉字?

zlcqupt 2010-01-20 04:26:36
1.nvarchar(10)最大包含10个Unicode字符数据,对不对?
2.如果是用utf-8编码,一个utf-8字符,占用的2byte,也可能是3byte对吧?
3.nvarchar(10)能储存的汉字数是不固定的是吧?
...全文
1124 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gao__910 2010-01-20
  • 打赏
  • 举报
回复
10个
DECLARE @a NVARCHAR(10)

SET @a = '随碟附送的是撒旦撒多少'
SELECT @a
查询结果
随碟附送的是撒旦撒多

DECLARE @a VARCHAR(10)

SET @a = '随碟附送的是撒旦撒多少'
SELECT @a
查询结果
随碟附送的

呵呵,只能通过这种方式来解决。
ACMAIN_CHM 2010-01-20
  • 打赏
  • 举报
回复
2.如果是用utf-8编码,一个utf-8字符,占用的2byte,也可能是3byte对吧?

可能是1个,也可能是2个,还可能是3个。汉字为3字节
jwwyqs 2010-01-20
  • 打赏
  • 举报
回复
nvarchar(10)能储存的汉字数是0到10个 存储的字符也是 0到10个
ACMAIN_CHM 2010-01-20
  • 打赏
  • 举报
回复
10 个
xman_78tom 2010-01-20
  • 打赏
  • 举报
回复
SQL Server 不支持 utf-8 编码,只支持 ucs-2 编码架构的 unicode 字符——每个字符都占用 2 个字节,因此nvarchar(10) 可以存储 10 个汉字是固定的。
feixianxxx 2010-01-20
  • 打赏
  • 举报
回复
     nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。
字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar
在 SQL-92 中的同义词为 national char varying 和 national character varying。
zlcqupt 2010-01-20
  • 打赏
  • 举报
回复
fredrickhu:你说的对不对哟老大?

1.nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据
nvarchar(10)就是包含10个字符的可变长度Unicode 字符数据。所以最大占20 byte.一个 Unicode 字符数据 占2 byte.

2.
utf-8可变长编码,可能占用3个以上的byte。

3.存储过程是:先把utf-8字符数据转化为Unicode 字符数据,然后存储。(这个对不对哟?)
所以可以存储10个utf-8字符数据。


对不对啊?


--小F-- 2010-01-20
  • 打赏
  • 举报
回复
第三个问题看错了

既然你都指定了长度 当然是定长的了
SQL77 2010-01-20
  • 打赏
  • 举报
回复
SELECT CONVERT(VARCHAR(1),'中')
SELECT CONVERT(NVARCHAR(1),'中')

----


(所影响的行数为 1 行)


----


(所影响的行数为 1 行)
--小F-- 2010-01-20
  • 打赏
  • 举报
回复
1.是5个吧
2.3byte
3.是不固定的 变长的
andysun88 2010-01-20
  • 打赏
  • 举报
回复
nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。
两字段分别有字段值:我和coffee
那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。
如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar

nvarchar(10)能储存的汉字数是固定的。10

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧