计算字节长度

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" />
<meta name="copyright" />
<title>计算字节长度</title>
<script>

var str = "abc中文";

// 4e00 - 9fa5

alert(getByteLength(str,"gbk"));

function getByteLength(str,type){
var len = 0;

for(var i = 0; i < str.length; i++){
if(str.charAt(i) >= "\u4e00" && str.charAt(i) <= "\u9fa5"){
if(type == "utf8"){
len += 3;
} else {
len += 2;
}
} else {
len++;
}
}

return len;
}

</script>
</head>

<body>

</body>
</html>

utf-8 中 存几个字节 byte = 8bit
gbk

utf-8 3字节
gbk 2字节
英文 1字节

时间: 2024-10-08 16:05:30

计算字节长度的相关文章

js混合计算字符串字节长度

js混合计算字符串字节长度 function getBt(str) { if (str.length > 0) { var char = str.match(/[^\x00-\xff]/ig); return str.length + (char == null ? 0 : char.length); } else { return 0; } } 用法:直接调用getBt('计算我的字节长度');

计算 num 的 n 次幂、n 的阶乘、斐波那契数列、字符串的字节长度、去除字符串中的重复字符

1 //计算 num 的 n 次幂 2 function numPow(num, n) { 3 if (n == 1) { 4 return num; 5 } 6 return num * numPow(num, n - 1); 7 } 8 9 //计算 n 的阶乘 10 function nFactorial(n) { 11 if (n == 1) { 12 return 1; 13 } 14 return n * nFactorial(n - 1); 15 } 16 17 //斐波那契数列,

javascript 计算字符串的字节长度

在做前端验证表单时,有时候要检测一个字符串的字节长度,保证其字节长度不超过数据库表中对应字段允许的最大长度. 不废话,上方法 1.我们通常遇到的情况都是中文+英文,所以可以判断每个字符的 Unicode 编码值,大于255,表示中文,字节应该比英文大1个字节: 1 function byteLength(str){ 2 var byteLen = str.length, len = str.length, i; 3 for(i = 0;i<len;i++){ 4 if(str.charCodeA

Java 计算中英文长度的若干种方法

在项目开发中经常碰到到输入字符的校验,特别是中英文混合在一起的校验.而为了满足校验的需求,有时需要计算出中英文的长度. 本文将通过几种常用的方法实现长度的计算: <span style="font-size:18px;">import java.io.UnsupportedEncodingException; /** * 中英文校验的处理 * @author a123demi * */ public class EnChValidate { public static vo

利用repne scas byte ptr es:[edi]计算字符串长度

edi:存放字符串al:存放字符xrepne scas byte ptr es:[edi] :遍历字符串,每循环一次ecx-1,遇到字符x则停止汇编中一个很经典的计算字符串长度的方法便是利用了这条指令. 00406930 /$ 89FA mov edx,edi 00406932 |. 89C7 mov edi,eax ;edi里为存放的字符串 00406934 |. B9 FFFFFFFF mov ecx,-0x1 ;ecx放入-1 00406939 |. 30C0 xor al,al ;al=

C++中各种数据类型占据字节长度

准备校招笔试的时候经常遇到C++某个数据类型占据多少个字节的问题,查阅了下资料,总结如下: 首先罗列一下C++中的数据类型都有哪些: 1.整形:int.long 2.字符型:char.wchar_t 3.布尔型:bool 4.浮点型:float.double 5.指针 一.整形 int占据操作系统一个内存单元的大小.long跟int相同 早先16位操作系统一个内存单元是16位,所以是2个字节:32位系统一个内存单元是是32位,所以是4字节:64位操作系统一个内存单元是16位,故占8个字节. 二.

Java String类型数据的字节长度

问题描述: 向Oracle数据库中一varchar2(64)类型字段中插入一条String类型数据,程序使用String.length()来进行数据的长度校验,如果数据是纯英文,没有问题,但是如果数据中包含中文,校验可以通过,但是在数据入库时经常会报数据超长. 问题分析: 既然问题是数据超长,那么问题应该就是出在数据长度校验上,也就是出在String.length()这个方法上,来看看JDK是如何描述这个方法的: [plain] view plain copy length public int

你必须知道的指针基础-4.sizeof计算数组长度与strcpy的安全性问题

一.使用sizeof计算数组长度 1.1 sizeof的基本使用 如果在作用域内,变量以数组形式声明,则可以使用sizeof求数组大小,下面一段代码展示了如何使用sizeof: int nums[] = {11,22,33,44,55,66}; int i; // sizeof(nums) 计算nums数组的总字节数 // sizeof(int) 计算int类型所占用的字节数 int length = sizeof(nums)/sizeof(int); for(i=0;i<length;i++)

WPF TextBox按字节长度限制输入

前两天做一个项目的时候,由于页面没有限制TextBox的输入长度,所以,后台直接报错了,超出数据库最大的长度. 数据库的长度是按照字节来计算的,而且不同的编码格式,汉字占用的字节长度又不相同,比如,我们用的是UTF8,一个汉字是3个字节,而默认的Default,一个汉字是2个字节. TextBox有个MaxLength属性,但是这个属性是不太合乎要求的,因为这个长度,是限制了输入的长度,比如设置20,则无论是数字.字母.汉字最大的长度都是20个,但是,对于数据库来说,长度却不相同了, 所以,不能