我的意思就是说:
var str="1哈哈";
length是为3,bytecount是为5,对吧
如果按长度取2的话,取得是“1哈”,如果按字节取2的话,取得应该是“1”和“哈”的一半我想知道的是js里面有没有按字节取的方法?如果没有,有没有好的思路

解决方案 »

  1.   

    可以,具体的我忘了,好像是vbscript实现的!
      

  2.   

    <script language="vbscript">
    msgbox(len("我们"))
    msgbox(lenb("我们"))
    </script>
      

  3.   

    this :
    -------------------------function strLength(str)
    {
    var l=str.length;
    var n=l
    for (var i=0;i<l;i++)
    {
    if (str.charCodeAt(i)<0||str.charCodeAt(i)>255) n++
    }
    return n
    }
      

  4.   

    感谢楼上两位的参与,不过我的目的按byte取值,不是长度
      

  5.   

    用strLength(str)得到的就是字节数
      

  6.   

    看http://expert.csdn.net/Expert/topic/2631/2631480.xml?temp=.9735529<script language=JavaScript>
    function eyun(st){
        var s = st.replace(/([^\x00-\xff])/g,"\x00$1");
        return (s.length<40)?st:s.substring(0,40).replace(/\x00/g,'');
    }
    alert(eyun("不能简单的用string.substring取这个字符串的前40个字节我只要它的前40个字节,我该怎么来取这40个字节??"))
    </script>
      

  7.   

    JavaScript和Jscript都不能直接读取、存储、处理二进制数据。
    如果你实在想这么干,建立一个数组,然后用能读取二进制的语言转过来吧,在JS里当是整数数组处理,只不过这样能烦死你。用VBScript好象可以。具体偶忘了。
      

  8.   

    比如JS里一个汉字就是1个字长,但它是双字节。例如有一个文本文件,用ADO 2.5+ 采用二进制模式读取,JS里用数组而不是字符串去接收到手的数据,这样能办到。
      

  9.   

    还得看你的文本是什么格式编码的,UNICODE 好象就全部是双字节的。
      

  10.   

    to xinyunyishui(心云意水
    方法不错,学习
    我也编一个