编码小结

一个汉字=两个字节(2B)一个英文字母=一个字节(1B)8bit(位)=1Byte(字节)1024Byte(字节)=1KB1024KB=1MB1024MB=1GB1024GB=1TB----------------------------------------

中英文字节长度转换str.replace(/[^\x00-\xFF]/g, ‘**‘)  中文字符转换为两个英文
  • ^\x00-\xFF]表示匹配Ascii码大于255的那些字符了
  • 匹配双字节字符[X00-XFF],比如大写英文字母。加上^表示相反的意思,就是匹配非双字节的字符。小写字母和汉字都会被匹配出来。
  • [^X00-XFF]等同于[^\x00-\xff]

--------------------------------------------

不超过12个汉字。支持中英文、数字、符号(不含空格)

  • 先用这个trim函数去空格-> \s指所有空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效

(科普:\w匹配任何字类字符,包括下划线。与“[A-Za-z0-9_]”等效,是\S(所有非空白字符)的子集)

function trim(str) {
    str = str.replace(/^\s+/, ‘‘);
    for (var i = str.length - 1; i >= 0; i--) {
        if (/\S/.test(str.charAt(i))) {
            str = str.substring(0, i + 1);
            break;
        }
    }
    return str;
}
  • 然后用var replacedStr = str.replace(/[^\x00-\xFF]/g, ‘**‘)把一个中文换成两个英文字符(即两个字节)
  • var patten = /^[\S]{1,24}$/; 匹配所有非空白字符的正则
  • patten.test(replacedStr);

编码解码

目的:好像是为了和后台传输的时候不出错。不同的浏览器对字符的解析不同?

encodeURIComponent(String)

对传递参数进行设置。不编码字符有 71 个: ! , ‘ , ( , ) , * , - , . , _ , ~ , 0-9 , a-z , A-Z 。

例:

var url = “<a href=’http://cancait.blog.163.com/name=” + encodeURIComponent(“ 中国 ”) + “’>中国 </a>”;

encodeURI(String)

对 URL 整体转换。不编码字符有 82 个: ! , # , $ , & , ‘ , ( , ) , * , + ,,, - , . , / , : , ; , = , ? , @ , _ , ~ , 0-9 , a-z , A-Z 。

例:

var url = “<a href=’” + encodeURI(“http://cancait.blog.163.com/name= 中国 ”) + “’> 中国 </a>”;

时间: 2024-08-24 15:11:52

编码小结的相关文章

ajax提交 的编码小结

今天用ajax的post方法提交数据给webservice,由于有email的缘故发现,注册方法调用总是报错,打开报文一看提交的 发现@符号被变成了%40 , [email protected] 即abc%40126.com.开始我还以为他没有编码.后来百度搜索发现.  他默认是进过urlencode编码. 为什么PHP接收到的$_POST数据里的邮箱符号@变成了%40 好像因为表单提交过来的数据会进行urlencode,你可以在php后台用urldecode看看,是否一致后来在发布端用http

xss编码小结

一.JS编码与HTML编码区分: HTML实体可以使用十进制与十六进制编码:javascript可以使用Unicode与八进制与十六进制进行编码. 二.编码原理区分: 三.编码与非编码 对于JS编码: 1.<script>eval("\u0061\u006c\u0065\u0072\u0074\u0028\u002f\u0078\u0073\u0073\u002f\u0029");</script>(JS Unicode编码) 2. <script>

ANSI, UTF-8, Unicode, GBK, GB2312 字符编码小结

这两天碰见一个Bug,涉及到字符编码,一通乱搜后,索性研究了下,整理出来,以便今后查阅. ASCII码,0~127,128个,这个就不用多说了,他是计算机文明的基石.但是这里面只有英文字母,其他国家如何把本国的文字输入到电脑中呢?所以基本每种语言都有自己的字符集,如汉字就有GB2312(简体中文),BIG5(繁体中文)等等. 但不同的ANSI编码在不同语言之间是不兼容的,所以对于不同的操作系统之间文件的传输,或者在同样的操作系统下,源文件语言不同于OS的语言文件的传输,需要转换成UTF-8格式.

编码问题的觉悟

编码问题总是梦魂萦绕地折磨着我. 即使每次都能找到一个似乎合理的解释来解释这个编码问题,但是实际上自己明 知还是对于整个计算机体系编码问题不能有一个整体的概念,二进制编码/ASCII编码/Unicode/ANSI编码,还有字符串问题等等. 我们都知道计算机在物理上储存的一切信息,无论是程序还是文件都是以二进制形式存在的. 因此要明白编码问题不是物理上的问题. 从百度百科中我们可以知道,计算机文件根本上分为两种文件,一种是文本文件,由一些字符的串行组成的,一般意义上的文本文件格式就是.txt文件.

HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP

题图:by @Olga Hi,大家好,我是承香墨影! HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又是由报文头(Header)和实体组成.大多数 HTTP 协议的使用方式,都是依赖设置不同的 HTTP 请求/响应 的 Header 来实现的. 本系列<实用 HTTP>就抛开常规的 Header 讲解式的表述方式,从实际问题出发,来分析这些 HTTP 协议的使用方式,到底是为了解决什么问题?同时讲解它是如何设计的和它实现原理. HTTP 协议是一

NodeJS学习指南

七天学会NodeJS NodeJS基础 什么是NodeJS 有啥用处 如何安装 安装程序 编译安装 如何运行 权限问题 模块 require exports module 模块初始化 主模块 完整示例 二进制模块 小结 代码的组织和部署 模块路径解析规则 包(package) index.js package.json 命令行程序 Linux Windows 工程目录 NPM 下载三方包 安装命令行程序 发布代码 版本号 灵机一点 小结 文件操作 开门红 小文件拷贝 大文件拷贝 API走马观花

你真的了解 Unicode 和 UTF-8 吗?

目录 引言 ASCII 码 什么是 ASCII 码? ASCII 码都包含哪些字符? ASCII 码的局限在哪里? Unicode 什么是 Unicode ? Unicode 的实现方式有几种? Unicode 的体系结构是什么样的? UTF-8 编码 UCS-2 编码 UTF-16 编码 UTF-32 编码 小结 参考文档 引言 一直以来总是对 unicode, UTF-8 等编码知识懵懵懂懂的,尤其是在做项目过程中只要涉及到几个编码之间的转换,都得到网上搜索一番,根据别人的经验照葫芦画瓢,才

UTF编码问题小结

在编程当中经常出现乱码的问题,而由此一般会引发很多惨剧,如读文件不成功.用户名显示乱码等,所以端午节抽了一小点时间好好看了一下编码问题,以备遗忘. 首先是中文编码,除了台湾和香港常用的BIG5,国内大概都用的是gb2312,这个可以从各大门户的首页源码中找到一些线索.还有一种叫gbk,这是微软对gb2312的拓展.主要由于gb2312只能表示6763个简体汉字,682个符号,具体可见字符区别. 然后是编程当中常见的utf编码,相信很多程序员都晕.比如我们最近在做android的NDK编程时,就发

小结getBytes()默认编码导致的xml字符串中出现乱码

遇到乱码第一印象想到的是如何统一编码,很少注意到这期间穿插的某些过程也是一大隐患.. sae上部署了一个spring写的微信小程序,手机总关注测试号点击菜单得到的文本消息却是乱码.. 聚焦发送消息的部分代码: response.setCharacterEncoding("utf-8"); response.getOutputStream().write(result.getBytes()); 编码已经设置为utf-8,spring也加了过滤器进行utf-8的解码...而且控制台也的确打