javascript字符串的byte字节长度(兼容gbk、utf-8)
2011-06-21 10:46
2354人阅读
评论 (0)
Tags: javascript
Javascript获取字符串占用的字节长度。
函数版
function Bytelen(str, encode){
var encodelen = 3;
if(encode && encode.substr(0, 2).toLowerCase() === 'gb'){
encodelen = 2;
}
var bytelen = 0;
var chars = str.split('');
for(i = 0; i < chars.length; i++){
var urichar = encodeURI(chars[i]);
bytelen += urichar.length == 1 ? 1 : urichar.length / 9 * encodelen;
}
return bytelen;
}
console.log(Bytelen("1中文1"));
console.log(Bytelen("1中文1", 'GBK'));
方法版
String.prototype.byteLength = function(encode){
var encodelen = 3;
if(encode && encode.substr(0, 2).toLowerCase() === 'gb'){
encodelen = 2;
}
var bytelen = 0;
var chars = this.split('');
for(i = 0; i<chars.length; i++){
var urichar = encodeURI(chars[i]);
bytelen += urichar.length == 1 ? 1 : urichar.length / 9 * encodelen;
}
return bytelen;
};
console.log("1中文1".byteLength());
console.log("1中文1".byteLength('GBK'));