javascript - js怎么计算一段文本的字节大小?
阿神
阿神 2017-04-11 10:39:46
0
5
604

网上百度了下,大多就是英文字母占一个字节,汉字占几个字节,然后加在一起计算,但是如果是特殊符号占几个字节,标点符号占几个字节,或者是有什么其他方法。前端小白一枚,求教各位了

阿神
阿神

闭关修行中......

全員に返信 (5)
迷茫

其实这个问题需要考虑你到底拿这个数据来干什么。
本来前端默认是不考虑字符串在计算机中具体存储模式的,因为没有意义(透明的)。
对于前端编程,需要考虑的是获取到的字符串如何进行拼接、截取等操作,而不是其中内部如何存储。
其实期望的是在计算字符串中字符数(这个才和拼接、截取有关)是不区分英文、中文之类的。
这样无论怎么样拼接、截取,都是整个字符的操作,而不会出现字符存储中间截断的问题。
当前一般是所有的浏览器实现(包括javascript运行引擎)在处理字符时都是用的Unicode 作为中间格式,它就没有这样的问题。
建议参考 http://baike.baidu.com/link?u...

对于前端来说 其实要区分运行时存储态
一般运行时都是采用的Unicode
存储态则可能用不同的编码(一般在同一个文件中只采用一种编码),然后运行前读入内存时就已经转换成Unicode ,不过要保证转换的可靠,就需要专门的指明存储采用的编码,这也是如html文件中指定之类的意义所在。如果不指定,可能会出现读入遵照(预期)的编码不是文件实际的编码,造成读取错误(出现乱码)等。

我们在处理页面逻辑时是在运行时,保存的文件是存储态

其实更一般的说法就是,我们按常规理解进行编程(字符串中所有的字符都在计算字符时为1个字符,不区分是那种语言的文字),只需要保存时设置好能够正确展示的编码格式,同时在页面中按规范标识存储采用的编码。

いいねを押す+0
    小葫芦

    这个跟计算机的数据结构,编码格式有关,一般说来,拿我们常用的来说,在gbk编码中,中文占2个字节,英文和数字占1个字节,你说的特殊字符,标点符号也是根据中英文区分的,也就是全角或者半角,在utf-8编码中,中文占3个字节,英文和数字还是1个字节.

    いいねを押す+0
      Peter_Zhu

      用nodejs可以用Buffer

      > var str1 = "测试adc96" undefined > str1 '测试adc96' > new Buffer(str1)  > var buf1 = new Buffer(str1) undefined > buf1.length 11 >

      一个汉字三个字节目测UTF-8

      浏览器:使用Blob

      >var str1 = "测试adc96" undefined >var bl = new Blob([str1]) undefined >bl.size 11
      いいねを押す+0
        小葫芦

        获得字符串的大小:

        unescape(encodeURIComponent(str)).length / 1024
        いいねを押す+0
          刘奇

          "字符串".length 就是长度

          如果你想判断中文英文,就判断ascii。

          いいねを押す+0
            最新のダウンロード
            詳細>
            ウェブエフェクト
            公式サイト
            サイト素材
            フロントエンドテンプレート
            私たちについて 免責事項 Sitemap
            PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!