utf-8编码的中文看成2个字符,其他数字字符看成一个字符

方法一:使用正则表达式,代码如下:

function getByteLen(val) {
            var len = 0;
            for (var i = 0; i < val.length; i++) {
                 var a = val.charAt(i);
                 if (a.match(/[^\x00-\xff]/ig) != null) 
                {
                    len += 2;
                }
                else
                {
                    len += 1;
                }
            }
            return len;
        }

方法二:使用字符unicode判断:方法如下:

function getByteLen(val) {
            var len = 0;
            for (var i = 0; i < val.length; i++) {
               var length = val.charCodeAt(i);
               if(length>=0&&length<=128)
                {
                    len += 1;
                }
                else
                {
                    len += 2;
                }
            }
            return len;
        }

时间: 2024-11-07 16:33:02

utf-8编码的中文看成2个字符,其他数字字符看成一个字符的相关文章

获取字符长度,中文2个字符,英文数字一个字符

转自testcs_dn(微wx笑) 博客 原文网址:http://blog.csdn.net/testcs_dn/article/details/21412303#comments 方法一: function strlen(str){ var len = 0; for (var i=0; i<str.length; i++) { var c = str.charCodeAt(i); //单字节加1 if ((c >= 0x0001 && c <= 0x007e) || (

字符编码、字符存储、字符转换及工程中字符的使用

字符编码.字符存储.字符转换及工程中字符的使用 版本控制 版本 时间(北京时间) 作者 备注 V1.0 2016-05-13 施小丰 创建本文.第七章工程总结尚未完成 一.          前言 1.        目的 本文主要用于整理字符相关知识,包括字符编码.字符存储.行业标准.文件读写.工程注意事项等涉及字符相关的内容, 从而在实际工程中更好地设计和使用字符.更快地解决字符问题. 2.        适用范围 本文标题是"Windows C++字符编码.存储.转换大全", 但

Unicode编码与中文的转换

1.1.  将unicode编码转换为中文 public String decodeUnicode(String src) { char[] in = src.toCharArray(); char aChar; char[] out = new char[src.length()]; int outLen = 0; int off = 0; int end = src.length(); while (off < end) { aChar = in[off++]; if (aChar == '

编码转中文

package com.util; public class Escape { private final static String[] hex = { "00","01","02","03","04","05","06","07","08","09","0A","0B&quo

CMD魔法堂:支持显示UTF8编码的中文

cmd命令行窗口显示中文乱码,多是因为cmd命令行窗口字符编码不匹配导致. 修改cmd窗口字符编码为UTF-8,命令行中执行:chcp 65001切换回中文:chcp 936这两条命令只在当前窗口生效,重启后恢复之前的编码. 切换cmd窗口字符编码有风险,例如切换过以后中文显示乱码,并且不能永久切换回原来模式,只能每次chcp 936. cmd中文显示乱码永久解决方案,以切换回中文936为例: 打开不正常的 CMD命令提示符窗口后,单击窗口左上角的图标,选择弹出的菜单中的“默认值”,切换到第一个

OC下Base64编码的中文字符编码问题

Base64是常用的编码规范之一,如网络传输中应用广泛,之前列举过base64编码的原理:<base64举例> 以及java实现的base64编码工具类. 这里,贴出OC下的base64代码,在平台之间通信过程中保证编码能通用——中间出现一个编码问题,google官方提供的base64Util包默认用的Utf-8编码,而中文之前统一用的gbk编码,以下代码修正了这个问题: 关键点:将CommonFunc的 base64StringFromText 和  textFromBase64String

PHP解码unicode编码的中文字符

问题背景:晚上在抓取某网站数据,结果在数据包中发现了这么一串编码的数据:"......\u65b0\u6d6a\u5fae\u535a......www.jinyuanbao.cn", 这其实是中文被unicode编码后了的数据,我现在就是想解码出中文来,疯狂的google之后,发现很多人贴出了如下的函数,不过我发现根本不好使....如何解码unicode编码的字符?[好使] - PHP网站开发 - [开源与分享]每日最新博客在置顶博客之后: 如何解码unicode编码的字符?[好使]

用python查看URL编码的中文

什么是URL编码呢,请看https://zh.wikipedia.org/wiki/Urlencode. 有时,我们向一些网站提交中文参数时,中文是会被编码成这种格式的 "%B1%E0%C2%EB ",它的原文是"编 码",URL编码也被称为"百分号编码",是不是有很多百分号.我们常使用的"空格"的URL编码就是 "%20",但是新的 标准把"空格" 替换为 "+",

中文转换成Unicode编码 和 Unicode编码转换为中文

前几天,遇到一个问题,就是在浏览器地址栏传递中文时,出现乱码,考虑了一下,解决方式有很多,我还是采用了转换编码的方式,将中文转换为Unicode编码,然后再解码成中文,以下是实现的过程,非常简单! package cy.code; public class CyEncoder { private String zhStr; //中文字符串 private String unicode;//将中文字符串转换为Unicode编码 存储在这个属性上. public CyEncoder(String z

一个低级错误引发Netty编码解码中文异常

前言 最近在调研Netty的使用,在编写编码解码模块的时候遇到了一个中文字符串编码和解码异常的情况,后来发现是笔者犯了个低级错误.这里做一个小小的回顾. 错误重现 在设计Netty的自定义协议的时候,发现了字符串类型的属性,一旦出现中文就会出现解码异常的现象,这个异常并不一定出现了Exception,而是出现了解码之后字符截断出现了人类不可读的字符.编码和解码器的实现如下: // 实体 @Data public class ChineseMessage implements Serializab