数码资讯
使用Javascript来计算下UTF-8字符串所占的字节数
最近,它与Javascript纠缠在一起。 在这样的一个问题,数据库的字符集是UTF-8,Javascript是用来验证页面上输入文字,和字节长度时存储的是UTF-8存储。Javascript字符串对象具有长度属性,但计算字符数,而不是字节(总是折腾,记得,在Delphi写的程序计算数字,字符串在字
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
最近,它与Javascript纠缠在一起。
在这样的一个问题,数据库的字符集是UTF-8,Javascript是用来验证页面上输入文字,和字节长度时存储的是UTF-8存储。Javascript字符串对象具有长度属性,但计算字符数,而不是字节(总是折腾,记得,在Delphi写的程序计算数字,字符串在字符串因为Delphi长度是字节…的数量),松弛的一种方法是设置验证码的最大长度为1 / 3在相应字段的长度在数据库中,但它是有点不合适。
所以我们试图确定在Javascript保存UTF-8字节数,找到关于Unicode出台关于互联网的文献很多,而最重要的是字符串的编码数存储相应的长度。
UCS-2编码(16)UTF-8字节流(二进制)
0000 007f 0xxxxxxx(1字节)
0080 07ff 110xxxxx 10xxxxxx(2字节)
0800 10xxxxxx FFFF 1110xxxx 10xxxxxx(3字节)
因此代码如下:
{复制代码如下所示:
功能mbstringlength(s){
无功总长度= 0;
var i;
Var charCode;
为(i = 0;i < s.length;i++){
字符码= s.charcodeat(我);
如果(字符码< 0x007f){
总长度=总长度+ 1;
}(如果其他(0x0080字符码(字符码)< = 0x07ff)){
总长度= 2;
}(如果其他(0x0800字符码)(字符码<= 0xFFFF)){
总长度= 3;
}
}
/ /警报(全长);
返回的长度;
}
事实上,0x0080和0x07ff人物之间很少用在实际的用户输入。
在这样的一个问题,数据库的字符集是UTF-8,Javascript是用来验证页面上输入文字,和字节长度时存储的是UTF-8存储。Javascript字符串对象具有长度属性,但计算字符数,而不是字节(总是折腾,记得,在Delphi写的程序计算数字,字符串在字符串因为Delphi长度是字节…的数量),松弛的一种方法是设置验证码的最大长度为1 / 3在相应字段的长度在数据库中,但它是有点不合适。
所以我们试图确定在Javascript保存UTF-8字节数,找到关于Unicode出台关于互联网的文献很多,而最重要的是字符串的编码数存储相应的长度。
UCS-2编码(16)UTF-8字节流(二进制)
0000 007f 0xxxxxxx(1字节)
0080 07ff 110xxxxx 10xxxxxx(2字节)
0800 10xxxxxx FFFF 1110xxxx 10xxxxxx(3字节)
因此代码如下:
{复制代码如下所示:
功能mbstringlength(s){
无功总长度= 0;
var i;
Var charCode;
为(i = 0;i < s.length;i++){
字符码= s.charcodeat(我);
如果(字符码< 0x007f){
总长度=总长度+ 1;
}(如果其他(0x0080字符码(字符码)< = 0x07ff)){
总长度= 2;
}(如果其他(0x0800字符码)(字符码<= 0xFFFF)){
总长度= 3;
}
}
/ /警报(全长);
返回的长度;
}
事实上,0x0080和0x07ff人物之间很少用在实际的用户输入。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。