varchar 50可以保存多少个汉字?

zhuxianzhu 2008-10-06 03:28:09
varchar 50可以保存多少个汉字?

为什么我的varchar 50 输入这么多个字(coursefile/asp.net URL多參數傳值以及特殊符號解決問題.doc)就报长度不够?
...全文
5644 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
dln1234 2008-10-06
  • 打赏
  • 举报
回复
varchar 50
想存多少汉字都可以
varchar 特点 当输入的汉字少于50自动缩短。当输入汉字超过50 它会自动增长
所以 varchar 50 其实和varchar 255 存的汉字都是一样的。
只不过你要是存25以内汉字用varchar 50更好些
但是你超过25汉字用varchar 50 也不会报错。 无非是系统会自动增加空间。影响查询添加速度而已
  • 打赏
  • 举报
回复
declare @s varchar(100)
set @s='coursefile/asp.net URL多參數傳值以及特殊符號解決問題.doc'
select len(@s),datalength(@s)

结果
41,56

显示有41个字符,共占用56个字节的空间,大于了你的设置最大值50
liang4571231 2008-10-06
  • 打赏
  • 举报
回复
25个
nvarchar(50)才是50个汉字
Liyingyue_FFS 2008-10-06
  • 打赏
  • 举报
回复
25个
  • 打赏
  • 举报
回复
1个汉字占两个字节。
lgxyz 2008-10-06
  • 打赏
  • 举报
回复
你确定 varchar (50)
下面所有的字符都有保存的?
(coursefile/asp.net URL多參數傳值以及特殊符號解決問題.doc)

这些字符的字节长度是 
56个字节。。。。
文飞扬 2008-10-06
  • 打赏
  • 举报
回复
varchar 50 可以包含50个字节,一个汉字占两个字节,一个ascii码占一个字节,因此,你这样输入报长度不够是正常的。
如果有汉字,最好用nvarchar50,就可以放25个汉字或者ascii字符
pt1314917 2008-10-06
  • 打赏
  • 举报
回复

select datalength('coursefile/asp.net URL多參數傳值以及特殊符號解決問題.doc')

---56,已经超过了50。。。字符串中的空格也算长度。。

lgxyz 2008-10-06
  • 打赏
  • 举报
回复
50/2 
25个汉字
pt1314917 2008-10-06
  • 打赏
  • 举报
回复
25个汉字,每个汉字占两个字节
hsie168518 2008-10-06
  • 打赏
  • 举报
回复
25 ge
fangmanhua8888 2008-10-06
  • 打赏
  • 举报
回复
改為nvarchar(50)
yeal911 2008-10-06
  • 打赏
  • 举报
回复
25个汉字 汉字每个占两个字节
twgxzjk 2008-10-06
  • 打赏
  • 举报
回复
25个

select len('coursefile/asp.net URL多參數傳值以及特殊符號解決問題.doc')
-狙击手- 2008-10-06
  • 打赏
  • 举报
回复
25




declare @s varchar(10)

set @s = '分可用分分可用分分可用分'
select @s

set @s = 'asfdghjkl;'
select @s

/*
----------
分可用分分

(所影响的行数为 1 行)


----------
asfdghjkl;

(所影响的行数为 1 行)

*/

34,838

社区成员

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

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