最近写东西时要控制文字换行,每行固定字节长度,由于字符串包含中英文,所以不能直接用length属性,从网上搜索后找到如下解决办法:
<script type="text/javascript">
var str="asdf字符串字节长度为" ;
alert(str+":"+getByteLen(str)+";字符长度为:"+str.length);
function getByteLen(str){
//编码为GBK时,非ASCII字符占用两个字节宽
return str.replace((/[^\x00-\xff]/g,'xx').length);
//编码为UTF-8时,非ASCII字符占用三个字节宽
}
</script>
附:
java中获取字符长度
String str = "asdf字符串字节长度为";
int bytelen = str.getBytes().length;
int len = str.length();