比如:
数据库一次段:UserName ,varchar 20
那么,我在页面的TextBox会提示:(最多输入20个字符,一个汉字占两个字符)
当然在入库的时候,我会判断TextBox输入的字符串长度,结果发现:
一个汉字只占一个长度,用户输入了20个汉字,其长度就是20
这样就与我的数据库不统一了。如何解决这个矛盾呢?
数据库一次段:UserName ,varchar 20
那么,我在页面的TextBox会提示:(最多输入20个字符,一个汉字占两个字符)
当然在入库的时候,我会判断TextBox输入的字符串长度,结果发现:
一个汉字只占一个长度,用户输入了20个汉字,其长度就是20
这样就与我的数据库不统一了。如何解决这个矛盾呢?
解决方案 »
- 100高分求助:依赖sql的缓存,刷新滞后问题.
- Cookie 不同网站,相同端口,传递过去后Cookie值丢失问题
- 在asp.net页面上如何实现将在列表a中的数据传到另一个列表框b,并且在另一个页面得到列表b的数据
- 有北京的朋友吗?我问一个问题
- 在javascript 方法里面怎么得到后台返回的一个对象
- 无刷新的连动下拉框在提交服务器后如何保存状态??急
- 不用DataGrid,如何实现类似他的功能?
- 回帖后再次刷新,又会重新提交一次,请老大们解决(领导在催,谢谢!)
- asp.net能调用httpservelet么?
- 小弟请教,为什么在vs.net里找不到水晶报表的 Report Application Server?
- TextBox输入的汉字占一个长度,而数据库中,一个汉字占两个字符长,如何统一呢?
- 网站美工改版,请帮提建议
TextBox是精确到字符的1个汉字是一个字符,一个数字也是一个字符,一个字母也是一个字符
不好判断
如果你能改数据结构
最好用nvarchar类型的字段
System.Console.WriteLine(len);
判断的方法有两种,一种是脚本,一种是服务端验证.
脚本判断:
//功能:取得字符串的实际长度,汉字取2,半角字母取1,累加而成
//str 要求取的实际长度
function GetLen(str)
{
var len = 0;
for(i=0; i<str.length; i++)
{
if(str.charCodeAt(i)>255)
len += 2 ;
else
len++ ;
}
return len;
}服务端判断:
字节长度 = System.Text.Encoding.Default.GetByteCount(myValue)