取出的字符串中含有问号说明这是个乱码,它可能是任何字符,不一定就是问号。
如果你一定要str2=是cc谁,那就把str3 = str1.substring(3,8);改成
str3 = str1.substring(3,9);吧,不过是在不明白你这段代码有什么意义?
如果你一定要str2=是cc谁,那就把str3 = str1.substring(3,8);改成
str3 = str1.substring(3,9);吧,不过是在不明白你这段代码有什么意义?
下面str2事实上就是?
temp=str1.substring(3,8);
然后判断
temp.substring(temp.length()-1,temp.length());的字符编码是否为汉字
{
var strSource ="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
var ch;
var i;
var temp;
for (i=0;i<=(str.length-1);i++)
{
ch = str.charAt(i);
temp = strSource.indexOf(ch);
if (temp==-1)
{
return 1;
}
}
if (strSource.indexOf(ch)==-1)
{
return 1;
}
else
{
return 0;
}
}如果检测到编码不为英文字母或数字,则向后取一位,即str1.substring(3,8+1);
这样再用substring就不会只取一半了,只是把英文汉字或符号都当做一个单元来处理
然后:
你可以做一个循环来读,一个单元一个单元的取,取一个单元s.getBytes("gb2312").length来判断一下长度,就可以达到你的目的!