[Unity3d]NGUI的INPUT输入框限制中文字节数问题
2013-10-24 17:29
519 查看
一般来说,昵称等用户输入的自定义数据都需要限制一下显示的长度。
NGUI的INPUT输入框限制的是最大的char字符数,char字符数其实就是string的长度,中文算一个,英文也算一个。无法达到限制字节的效果。
如下:
![](http://s9.sinaimg.cn/mw690/5b6cb950gx6D1Uj6StWd8&690)
既然NGUI已经提供了限制char的效果,咱们不妨将这个功能改为限制字节数。限制字符数的原理主要是计算当前字符数,若超过则删除最后添加的一个文字,要注意到很可能用户会同时输入多个字,所以需要循环删除最后一个字符,直到字节数小于等于设定值。
具体实现方式:
1.找到UIInput.cs这个脚本,找到UpdateLabel ()函数。
2.然后你会看到有下面这一行代码:
if (maxChars > 0 && mText.Length > maxChars) mText = mText.Substring(0, maxChars);
很显然是限制char字数的,将这行代码注释掉。
3.加上以下代码:
//fix bytes length to adapt
byte[] bytestr = System.Text.Encoding.Default.GetBytes(mText);
if (maxChars > 0 && bytestr.Length > maxChars)
{
//delete the final char
mText = mText.Substring(0, mText.Length -1);
while (System.Text.Encoding.Default.GetBytes(mText).Length > maxChars)
{
mText = mText.Substring(0, mText.Length - 1);
}
}
//fix end
http://blog.sina.com.cn/s/blog_5b6cb9500101fabw.html
NGUI的INPUT输入框限制的是最大的char字符数,char字符数其实就是string的长度,中文算一个,英文也算一个。无法达到限制字节的效果。
如下:
既然NGUI已经提供了限制char的效果,咱们不妨将这个功能改为限制字节数。限制字符数的原理主要是计算当前字符数,若超过则删除最后添加的一个文字,要注意到很可能用户会同时输入多个字,所以需要循环删除最后一个字符,直到字节数小于等于设定值。
具体实现方式:
1.找到UIInput.cs这个脚本,找到UpdateLabel ()函数。
2.然后你会看到有下面这一行代码:
if (maxChars > 0 && mText.Length > maxChars) mText = mText.Substring(0, maxChars);
很显然是限制char字数的,将这行代码注释掉。
3.加上以下代码:
//fix bytes length to adapt
byte[] bytestr = System.Text.Encoding.Default.GetBytes(mText);
if (maxChars > 0 && bytestr.Length > maxChars)
{
//delete the final char
mText = mText.Substring(0, mText.Length -1);
while (System.Text.Encoding.Default.GetBytes(mText).Length > maxChars)
{
mText = mText.Substring(0, mText.Length - 1);
}
}
//fix end
http://blog.sina.com.cn/s/blog_5b6cb9500101fabw.html
相关文章推荐
- NGUI的Input输入框限制中文字节数问题
- 今天碰到一个问题,怎么限制用户在固定宽度的input输入框里输入的长度,由此涉猎到了maxlength属性和size属性以及它们的区别。
- 不同浏览器兼容问题—— input 添加required属性 firefox下输入框为红色 +禁止中文输入
- input输入框限制输入字节数
- 不同浏览器兼容问题—— input 添加required属性 firefox下输入框为红色 +禁止中文输入
- js 限制输入框的字节数,中文两个字节,英文字母一个字节
- unity3d项目学习网站%Highcharts中文网站js&实现input输入框模糊查询
- Unity之NGUI中的Input计算字节位数等问题汇总
- input输入框输入中文时,需要计数input输入的汉字数,解决拼音输入的时候计数问题
- UITextField限制输入字数高亮状态下输入框内真实类容与textFiled(解决中文输入问题)
- Apache中文URL中有包含“\x85”字节的汉字时导致的Rewrite失败及404问题
- 使用正则限制input框只能输入数字/英文/中文等等
- 控制 input 输入框不能输入中文,即不能在输入框中使用输入法
- input 输入框输入中文
- js验证input输入框(字母,数字,符号,中文)
- 关于改变Google浏览器出现input输入框变黄色问题
- Unity3D开发之NGUI结合粒子系统的遮挡问题
- 限制input输入框输入的长度
- JDBC读取Oracle的US7ASCII编码中文乱码及不同编码下汉字占用字节的问题
- Unity3d 移动平台中文显示问题