需求:如图
默认显示:0/160个英文字符;
开始输入后:
如果最后一个字符是英文,显示:已输入字符个数/剩余可输入的英文字符个数;
如果最后一个字符是汉字,显示:已输入字符个数/剩余可输入的汉字字符个数
概念:数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位。
手机短信的长度是由编码决定的,根据国际标准:
如果发送纯英文字符,由于英文ASCII采用 7位编码,所以1120位的限额可以传送1120÷7=160个字符;
如果发送纯汉字字符,每条短信最多发送1120位,合(1120÷8=140, 一个字节占8位)140字节的内容,每个汉字占用2个字节140/2=70个字符;
一旦传送的字符中包含中文、日文、韩文等双字节字符,不论中文还是西文,不论全角还是半角,都必须采用2个字节的8位编码,因此1120÷8÷2=70个字符,即最多传送70个字符。
简言之: 一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间;
1个汉字=16bit,1个英文字符=7bit;
即:如果全部输入中文,输入的字符长度不能超过70个汉字,如果全部输入英文,输入的字符长度不能超过160个英文;中英文混合的最大不能超过1120bit(160*7)。
规则:ASCII编码大致由三部分组成:
1、ASCII 打印字符:数字 32–126 分配给了能在键盘上找到的字符
2、ASCII 非打印控制字符:数字 0–31 分配给了控制字符,用于控制像打印机等一些外围设备。
3、扩展 ASCII 打印字符:扩展的 ASCII 字符满足了对更多字符的需求。扩展的 ASCII 包含 ASCII 中已有的 128 个字符,又增加了 128 个字符,总共是 256 个。
ASCII编码转换为Unicode编码十进位为(0~255)之间的数字,汉字转换为Unicode编码大于255
<div class="sms-footer" id="smsFooter">
<div class="sms-input-content com-ilb">
<!-- 用div标签代替input输入框,才可以使手机软键盘顶起输入框 -->
<div class="sms-input" contenteditable id="sendText" onKeyUp="sendKeyUp(this)"> </div>
</div>
<div class="sms-send-btn com-ilb">
<div class="sms-btn-send" id="sendEvent