javascript string length

以前知道用js求字符串长度的时候,中英文要单独处理。今天看书,看到这么一段:
[code="java"]var so = new String("hello world");
alert(so.length);// outputs "11"[/code]

上面输出11.[color=red]”注意:即使字符串包含双字节的字符,每个字符也只算一个字符。“[/color]

红色的不太懂什么意思。中文不是双字节的吗?
[b]问题补充:[/b]
不会吧。
[code="java"]var n = new String("aaa bbb ccc我");
alert(n.length);[/code]
这里得到的是13
[code="java"]var n = new String("aaa bbb ccc");
alert(n.length);[/code]
这个得到的是11啊

怎么回事????

[b]问题补充:[/b]
我是ie7,你呢?我用别人的ie6是12。
我晕了。
[b]问题补充:[/b]
不可能多空格,我把文件发给他们,直接打开,不做任何修改,结果就是12,我的这里是13,不过他那里的火狐也是13.

怎么该???
[b]问题补充:[/b]
谢谢你的耐心。

我知道为什么了。因为我是在文件里面测试的。而文件的(html)的编码设置的是UTF-8。我改成GBK就可以弹出12了。
ps。直接在地址栏alert也是12,不管什么浏览器。

这个问题是不是没办法解决啊?如果要把页面编码设置成UTF-8,在用到js的length的时候就只能单独处理了?

期待中............

不是因为版本问题导致这个bug吧

不过ie下有bug也是蛮正常的,哈哈

我测试就直接在地址栏上输入

javascript:var n = new String("aaa bbb ccc我");alert(n.length);

是12

javascript是这么计算里;一个字母和一个汉字是一样里;

中文是双字节的啊,

也就是说在字符串取长的时候,中英文字符都算一个字符

不可能吧,

var n = new String("aaa bbb ccc我");
alert(n.length);
我这得到的都是12

我ie6,7,firefox都是12,没问题的

你自己不小心多搞了个空格吧