zoukankan      html  css  js  c++  java
  • JS PHP MySQL 字符长度

    摘要:

    js的string.length 属性取的是字符串的实际长度

    php的str_len()函数取的是字符串的字节长度,中文utf-8占3个字节,gb2312占2个字节

    mysql中的varchar类型长度,指字符长度


    一个汉字在UTF-8编码中占用几个字节?

    占用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个字节。

    //字符编码数值对应的存储长度:     
    //UCS-2编码(16进制) UTF-8 字节流(二进制)    
    //0000 - 007F       0xxxxxxx (1字节)     
    //0080 - 07FF       110xxxxx 10xxxxxx (2字节)     
    //0800 - FFFF       1110xxxx 10xxxxxx 10xxxxxx (3字节)    
    String.prototype.getBytesLength = function() {   
        var totalLength = 0;     
        var charCode;  
        for (var i = 0; i < this.length; i++) {  
            charCode = this.charCodeAt(i);  
            if (charCode < 0x007f)  {     
                totalLength++;     
            } else if ((0x0080 <= charCode) && (charCode <= 0x07ff))  {     
                totalLength += 2;     
            } else if ((0x0800 <= charCode) && (charCode <= 0xffff))  {     
                totalLength += 3;   
            } else{  
                totalLength += 4;   
            }          
        }  
        return totalLength;   
    }  
    var str=",";  
    alert("字符数"+str.length+" ,字节数"+str.getBytesLength());


    php字符长度使用mb附加类库mb_strlen()获取
     
  • 相关阅读:
    JS Leetcode 530. 二叉搜索树的最小绝对差 题解分析,再次了解中序遍历
    JS Leetcode 179. 最大数 题解分析,sort a-b与b-a的区别,sort排序原理解析
    Echarts 数据可视化 (二)
    Echarts 数据可视化 (一)
    Less 入门
    【Mybatis-Plus框架学习】专栏总集篇
    【Mybatis-Plus框架学习】雪花算法 剖析
    【多文件自平衡云传输】使用展示 —— 文件传输系统
    详解 资源发现技术 的基本实现
    【多文件自平衡云传输】专栏总集篇
  • 原文地址:https://www.cnblogs.com/ccdc/p/2865264.html
Copyright © 2011-2022 走看看