zoukankan      html  css  js  c++  java
  • js获取字符串的字节长度

    占用3个字节的范围
    U+2E80 - U+2EF3 : 0xE2 0xBA 0x80 - 0xE2 0xBB 0xB3 共 115 个
    U+2F00 - U+2FD5 : 0xE2 0xBC 0x80 - 0xE2 0xBF 0x95 共 213 个
    U+3005 - U+3029 : 0xE3 0x80 0x85 - 0xE3 0x80 0xA9 共 36 个
    U+3038 - U+4DB5 : 0xE3 0x80 0xB8 - 0xE4 0xB6 0xB5 共 7549 个
    U+4E00 - U+FA6A : 0xE4 0xB8 0x80 - 0xEF 0xA9 0xAA 共 44138 个
    U+FA70 - U+FAD9 : 0xEF 0xA9 0xB0 - 0xEF 0xAB 0x99 共 105 个

    合计: 52156

    占用4个字节的范围

    U+20000 - U+2FA1D : 0xF0 0xA0 0x80 0x80 - 0xF0 0xAF 0xA8 0x9D 共 64029 个

    合计: 64029

    所以,我认为答案应该是:3个或4个字节

     方法一:循环遍历

    参考:http://www.cnblogs.com/sniper007/p/3309787.html

     1 //字符编码数值对应的存储长度:     
     2 //UCS-2编码(16进制) UTF-8 字节流(二进制)    
     3 //0000 - 007F       0xxxxxxx (1字节)     
     4 //0080 - 07FF       110xxxxx 10xxxxxx (2字节)     
     5 //0800 - FFFF       1110xxxx 10xxxxxx 10xxxxxx (3字节)    
     6 String.prototype.getBytesLength = function() {   
     7     var totalLength = 0;     
     8     var charCode;  
     9     for (var i = 0; i < this.length; i++) {  
    10         charCode = this.charCodeAt(i);  
    11         if (charCode < 0x007f)  {     
    12             totalLength++;     
    13         } else if ((0x0080 <= charCode) && (charCode <= 0x07ff))  {     
    14             totalLength += 2;     
    15         } else if ((0x0800 <= charCode) && (charCode <= 0xffff))  {     
    16             totalLength += 3;   
    17         } else{  
    18             totalLength += 4;   
    19         }          
    20     }  
    21     return totalLength;   
    22 }  
    23 var str="你好吗?111?";  
    24 alert("字符数"+str.length+" ,字节数"+str.getBytesLength());    
    25 //Java中的字节数==="字符串".getBytes("UTF-8").length   
    26   //-->  

     方法二:使用正则表达式

      待整理

     

  • 相关阅读:
    线性代数思维导图——3.向量
    微分中值定理的基础题型总结
    构造函数
    Python课程笔记(七)
    0241. Different Ways to Add Parentheses (M)
    0014. Longest Common Prefix (E)
    0013. Roman to Integer (E)
    0011. Container With Most Water (M)
    0010. Regular Expression Matching (H)
    0012. Integer to Roman (M)
  • 原文地址:https://www.cnblogs.com/yingsong/p/5819311.html
Copyright © 2011-2022 走看看