版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/MacYosef/article/details/78373877
使用Input Field自带的character limit在输入时会将中文当作一个字节
通常中文占两个字节
byte[] tempByte; //存储字节数组
public int upperLimit = 12 //限制字节数
public InputField _inputField;
void Start()
{
//添加回调
_inputField.onValueChanged.AddListener(CheckByteCount);
}
void CheckByteCount(string inputText) {
inputText = inputText.Replace(" ", ""); //去掉空格
tempByte = Encoding.GetEncoding("GB2312").GetBytes(inputText.ToCharArray());
if (tempByte.Length >= upperLimit)
_inputField.characterLimit = inputText.Length;
else
//在字节数小于限制时重现设置输入上限
_inputField.characterLimit = upperLimit;
_inputField.text = inputText;
}
测试结果:
英文输入结果
中文输入结果