java中如何计算一个字符串的byte长度。中文及其符号占2个byte,英文1个。请知道的朋友写个通用1.4和1.6的,并且不受运行系统的中英文环境的代码。
我记得好像1.4的char存储时,英文占位符的0在后,而1.6的char,英文占位符0在前。
并且不要用getByte()方法,因为依赖操作系统的编码格式。
我记得好像1.4的char存储时,英文占位符的0在后,而1.6的char,英文占位符0在前。
并且不要用getByte()方法,因为依赖操作系统的编码格式。
比如说:GB2312、GBK、GB18030 编码是占用两个字节的,但是 UTF-8 编码的话至少需要占用三个字节。因此你的问题无法回复!
if(str == null || str.length == 0) {
return 0;
}
int count = 0;
char[] chs = str.toCharArray();
for(int i = 0; i < chs.length; i++) {
count += (chs[i] > 0xff) ? 2 : 1;
}
return count;
}或者你直接使用 int len = str.getBytes("gbk");
function check(){
var str = document.getElementById("test").value;
if(str.length < 5){
update("至少输入5个字符!");
}else if(str.length > 10){
update("不能超过10个字符!");
str = str.substring(0,10);
document.getElementById("test").value = str.substring(0,10);
}else{
update("有效的用户名。")
}
}
function update(word){
document.getElementById("feedback").innerHTML = word;
}
</script><p> <label for="test">帐号:</label>
<input type="text" name="test" id="test" onkeypress="check()" maxlength="15" /> <span id="feedback"></span></p>
第二,这不是页面输入内容,直接从excel导进去的,我想尽量不要靠异常来记录出错信息。
本人惭愧,从来没写过防止数据库超长插入的程序判断,这次突然想严谨风格、通用程序。结果修炼不够。哎,谁有好例子请在java版发一下吧。我这里用笨招儿了。
计算长度的话还是可以用getBytes(Charset charset)
java机上的字符串都是UTF-16,不管英文还是汉字都每个占两字节
本地操作系统编码格式可以用Charset.defaultCharset()得到.
数据库的编码格式就只有看你用的什么数据库来判断他的编码格式了.