精华内容
下载资源
问答
  • 用JavaScript计算字符串占用字节数

    千次阅读 2013-08-08 14:12:30
    用JavaScript计算字符串占用字节数 最近和JavaScript纠缠上了。 遇到这么一个问题,数据库的字符集为UTF-8的,要在页面上使用JavaScript验证输入的文本用UTF-8存储时占用字节长度。JavaScript的...
    
    


    最近和JavaScript纠缠上了。

    遇到这么一个问题,数据库的字符集为UTF-8的,要在页面上使用JavaScript验证输入的文本用UTF-8存储时占用字节长度。JavaScript的String对象有length属性,但是这个计算的是字符数,不是字节数(问题总是翻来覆去的,记得当年玩Delphi的时候,还得写程序计算字符串的字符数,因为Delphi中String的length是字节数...)。偷懒一点的办法是将验证代码中最大长度设置为数据库中对应字段的长度的1/3,但是这样准确来说有点不合适。

    所以想办法在JavaScript中判断在UTF-8下存储的String的字节数,在网上找到很多关于Unicode介绍的文档,最重要的是字符编码数值对应的存储长度:

    UCS-2编码(16进制) UTF-8 字节流(二进制) 
    0000 - 007F 0xxxxxxx (1字节)
    0080 - 07FF 110xxxxx 10xxxxxx (2字节)
    0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx (3字节)

     

    于是代码如下:

    function mbStringLength(s) {
            var totalLength = 0;
            var i;
            var charCode;
            for (i = 0; i < s.length; i++) {
              charCode = s.charCodeAt(i);
              if (charCode < 0x007f) {
                totalLength = totalLength + 1;
              } else if ((0x0080 <= charCode) && (charCode <= 0x07ff)) {
                totalLength += 2;
              } else if ((0x0800 <= charCode) && (charCode <= 0xffff)) {
                totalLength += 3;
              }
            }
            //alert(totalLength);
            return totalLength;
          }

     

    实际上,0x0080到0x07ff之间的字符很少会在实际用户输入中用到。

     

    参考文档:

    程序员趣味读物:谈谈Unicode编码 http://www.lihuasoft.net/article/show.php?id=2778

    展开全文
  • 其实就是String.getBytes().length这样...英文字母和中文汉字在不同字符集编码下的字节数 英文字母: 字节数 : 1;编码:GB2312 字节数 : 1;编码:GBK 字节数 : 1;编码:GB18030 字节数 : 1;编码:ISO-8859-1 字节数 ...

    其实就是String.getBytes().length这样就可以获得字节长度了.

    我们知道一个数字是一个字节,一个汉字是2个字节,但是这个不是绝对的,在不同的编码下,字节数是不一样的

    英文字母和中文汉字在不同字符集编码下的字节数
    英文字母:

    字节数 : 1;编码:GB2312

    字节数 : 1;编码:GBK

    字节数 : 1;编码:GB18030

    字节数 : 1;编码:ISO-8859-1

    字节数 : 1;编码:UTF-8

    字节数 : 4;编码:UTF-16

    字节数 : 2;编码:UTF-16BE

    字节数 : 2;编码:UTF-16LE

    中文汉字:

    字节数 : 2;编码:GB2312

    字节数 : 2;编码:GBK

    字节数 : 2;编码:GB18030

    字节数 : 1;编码:ISO-8859-1

    字节数 : 3;编码:UTF-8

    字节数 : 4;编码:UTF-16

    字节数 : 2;编码:UTF-16BE

    字节数 : 2;编码:UTF-16LE

    1TB=1024GB
    1GB=1024MB
    1MB=1024KB
    1KB=1024Byte
    1B = 8bit
    注:Byte就是B也就是字节
    所以1MB=1024*1024=1048576字节

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 判断字符串所占的字节数

    千次阅读 2014-05-09 11:57:22
    //判断字符串所占的字节数 function GetCharLength(str) { var iLength = 0; //记录字符的字节数 for (var i = 0; i ; i++) //遍历字符串中的每个字符 { if (str.charCodeAt(i) > 255) //如果当前字符的编码大于...
    //判断字符串所占的字节数
    function GetCharLength(str) {
        var iLength = 0;  //记录字符的字节数
        for (var i = 0; i < str.length; i++)  //遍历字符串中的每个字符
        {
            if (str.charCodeAt(i) > 255)   //如果当前字符的编码大于255
            {
                iLength += 2;    //所占字节数加2
            }
            else {
                iLength += 1;   //否则所占字节数加1
            }
        }
        return iLength;   //返回字符所占字节数
    }
    //若字符串长度超过要求,截掉多余部分
    function CutStr(elementID, len)   //elementID表示要进行处理的对象ID,len表示设置的限制字节数
    {
        var str = document.getElementById(elementID).value;  //获取要处理的字符串
        var curStr = "";  //用于实时存储字符串
        for (var i = 0; i < str.length; i++)   //遍历整个字符串
        {
            curStr += str.charAt(i);  //记录当前遍历过的所有字符
            if (GetCharLength(curStr) > len)  //如果当前字符串超过限制长度
            {
                document.getElementById(elementID).value = str.substring(0, i);  //截取多余的字符,并把剩余字符串赋给要进行处理的对象
                return;  //结束函数
            }
        }
    }

    展开全文
  • 字母、数据各占一个字节,中文占2个字节 return str.replace(/[\u0391-\uFFE5]/g,"aa").length \u0391-\uFFE5 匹配双字节字符(汉字+符号) str:要检测的字符串 ...

    字母、数据各占一个字节,中文占2个字节

    return str.replace(/[\u0391-\uFFE5]/g,"aa").length   
    \u0391-\uFFE5  匹配双字节字符(汉字+符号)
    
    str:要检测的字符串
    

     

    展开全文
  • Js中求字符串占用字节长度

    千次阅读 2018-11-06 16:25:41
    var a = ‘hello world!你好世界!... //先用num保存一下字符串的长度(可以理解为:先假设每个字符都只占用一个字节) for (var i = 0; i &lt; str.length; i ++) { //遍历字符串 if (s...
  • 【oracle】查看字符占用字节数 查看字符占用字节selectuserenv('language'),dump('我'),length('我'), --字符数lengthb('我'), --字节数vsize('我')from dual; 说明:OS的环境变量...
  • Java基本数据类型所占字节数以及一个字符串怎么判断有多少个字节? 解答第一个问题,Java基本数据类型所占字节数 一个字符串判断有多少个字节组成: String采用一种更灵活的方式进行存储。在String中,一个英文...
  • 判断字符串有多少个字节

    千次阅读 2012-05-28 15:03:12
    //在java中汉字占两个字节,英文字母、数字和标点符号占一个字节 public class Test{ public static void main(String[] args) { String str="asdasdasdasdad"; byte[] bytes=str.getBytes(); ...
  • C语言:函数实现求字符串占内存单元字节 int f(char *s) { char *t=s; while(*t++) // 循环到\0结束, 但是t指针指向了\0后边的单元 return t-s; } 其中问题: 区分t++ 与 ++t的区别 \0的意义 指针的减法...
  • Java字符串按照字节截取

    千次阅读 2015-05-10 10:35:33
    这是一道常见的Java面试题, 很多人都遇到过, 这里涉及的知识点还挺多, 网上的论断和实现也很多...因为ASCII代表了通用英文字符集, 在互联网背景下, 为了统一世界各国各种字符集, 流行开了Unicode字符集, 显然Java也原生
  • Python 中,要想知道一个字符串有多少个字符(获得字符串长度),或者一个字符串占用多少个字节,可以使用 len 函数。 len 函数的基本语法格式为: len(string) 其中 string 用于指定要进行长度统计的字符串。 ...
  • Python中,要想知道一个字符串有多少个字符(获得字符串长度),或者一个字符串占用多少个字节,可以使用 len 函数。 len 函数的基本语法格式为: len(string) 其中 string 用于指定要进行长度统计的字符串。 ...
  • input控件有一个MaxLength 属性可以限制输入的最大字符,但是该属性在判断中文字符时与英文字符...我们都知道,字母数字的ascii编码都小于255而汉字的编码肯定大于255,我们可以使用此方法来判断字符串占用的是一个
  • Java字符串所占字节数的小总结

    千次阅读 2019-02-02 15:17:38
    首先,char为Java的基本类型,基本类型所占的字节数是固定的,如int占4字节,double占8字节,这可以使得Java在不同的平台上所占类型...在String中,一个英文字符占1个字节,而中文字符根据编码的不同所占字节数也不...
  • function getByteLen(val) { //传入一个字符串  var len = 0;  for (var i = 0; i val.length; i++) {  if (val[i].match(/[^\x00-\xff]/ig) != null) //全角
  • JS计算字符串所占字节数

    千次阅读 2014-11-02 00:36:59
    最近项目有个需求要用js计算一串字符串写入到localStorage里所占的内存,众所周知的,js是使用Unicode编码的。而Unicode的实现有N种,其中用的最多的就是UTF-8和UTF-16。因此本文只对这两种编码进行讨论。 下面这...
  • 1. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个? 可以调用Microsoft Visual C++的运行期库包含函数_mbslen来操作多字节(既包括单字节也包括双字节字符串。 调用strlen函数,无法真正...
  • 判断一个字符是双字节还是单字节

    千次阅读 2011-12-14 10:24:47
    对于字符串的处理,经常会遇到需要判断字符是双字节还是单字节(或者全角和半角)的情况,因为双字节字符和单字节字符在屏幕上所占用的空间是不同的,通常情况下双字节字符占用的空间是单字节字符的两倍。...
  • PHP自带的函数如strlen()、mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节。例: $enStr = 'Hello,China!'; echo strlen($enStr); // 输出:12 而中文则不然,做中文
  • * 题目: 编写一个截取字符串的函数,输入为一个字符串字节数, 输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4, * 应该截为“我AB”,输入“我ABC汉DEF”,6, 应该输出为“我ABC”而...
  • 是否有一些函数可以告诉我字符串在内存中占用多少字节? 我需要设置套接字缓冲区的大小,以便一次传输整个字符串。 解决方案 import sys sys.getsizeof(s) # getsizeof(object, default) -> int # Return ...
  • let getStrBytes = function (str) { if (str == null || str === undefined) return 0; if (typeof str != "string") { return 0;... console.log(getStrBytes("js 获取字符串所占字节数 (UTF-8编码)"))
  • 判断字符串中是否包含中文字符

    千次阅读 2018-06-29 14:38:16
    判断字符串中是否包含中文字符 代码块语法遵循标准markdown代码,例如: public static bool StrIsChinese(string src) { if(string.IsNullOrEmpty(src)) return false; int length = ...
  • utf-8字符所占字节数

    千次阅读 2018-11-15 14:39:59
    字节数 : 1;编码:GB2312 字节数 : 1;编码:GBK 字节数 : 1;编码:GB18030 字节数 : 1;编码:ISO-8859-1 字节数 : 1;编码:UTF-8 字节数 : 4;编码:UTF-16 字节数 : 2;编码:UTF-16BE 字节数 : 2;编码:UTF-...
  • java校验字符串字节长度

    千次阅读 2018-05-09 19:03:19
    页面传过来 utf-8编码,中文占3个字节,英文的话只占一个字节System.out.println("人".getBytes().length);... 输出2页面传过来 GBK编码,则占用2个字节System.out.println("人".getBytes()...
  • Java中如何创建指定大小字节数字符串 如:想创建一个固定长度为12个字节的字符串如何创建呢.谢谢 更多 0 分享到: 对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 回复次数:14 qybao  关注  ...
  • Oracle 判断字符串是否含有汉字

    千次阅读 2016-10-13 09:21:14
    我们知道在数据库中,汉字占用两个字节,而其他字符占用一个字节,这样通过两个函数的比较就可以判断出是否有中文, length计算字符长度,lengthb计算字节长度; select lengthb('a爱中国'),length('a爱中国') ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 98,564
精华内容 39,425
关键字:

如何判断字符串占用字节数