【Unity学习笔记】UGUI输入框中将中文设置为两个字节

版权声明:本文为博主原创文章,未经博主允许不得转载. 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;
    }

测试结果:
英文输入结果
英文输入结果
中文输入结果
这里写图片描述

参考:
https://www.douban.com/note/334994123/?type=rec

猜你喜欢

转载自blog.csdn.net/MacYosef/article/details/78373877