js 编码方式详解

Python逆向有道翻译:AES-CBC解密与Node.js crypto模块3处关键替换 本文详细解析了如何通过Python逆向有道翻译API,重点介绍了AES-CBC解密过程与Node.js crypto模块的3处关键替换。内容包括密钥生成、初始向量处理及解密函数实现,帮助开发者理解并实现加密数据的解密逻辑,适用于网络爬虫和API集成开发。 阅读详情

URL编码转换,escape() encodeURI() encodeURIComponent()

 

要点:

  • 编码针对utf8 解码的时候要注意!
  • encodeURIComponent() 编码要传递的参数
  • encodeURI() 只是对一个有效的URL 进行编码,url  不是参数,编码方式等同输入IE后的效果。
  • 例子:var s=" http://cang.baidu.com/do/s?word=百度&ct=21";
    s1=escape(s) ;
    s2=encodeURI(s);
    s3=encodeURIComponent(s);
    输出结果:
  • escape:http%3A//cang.baidu.com/do/s%3Fword%3D%u767E%u5EA6%26ct%3D21
  • encodeURIComponent:http%3A%2F%2Fcang.baidu.com%2Fdo%2Fs%3Fword%3D%E7%99%BE%E5%BA%A6%26ct%3D21

this.Label1.Text = System.Web.HttpUtility.UrlEncode(this.TextBox1.Text);
        this.Label2.Text = System.Web.HttpUtility.UrlEncode(System.Text.UTF8Encoding.UTF8.GetBytes( this.TextBox1.Text));

和 encodeURIComponent 的结果一样, asp.net 默认使用的utf-8  安全期间System.Web.HttpUtility.UrlEncode(System.Text.UTF8Encoding.UTF8.GetBytes( this.TextBox1.Text) 方式和js 之间互传参数比较好!

 


escape() 方法:
采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。unescape方法与此相反。不会被此方法编码的字符: @ * / +

英文解释:MSDN JScript Reference: The escape method returns a string value (in Unicode format) that contains the contents of [the argument]. All spaces, punctuation, accented characters, and any other non-ASCII characters are replaced with %xx encoding, where xx is equivalent to the hexadecimal number representing the character. For example, a space is returned as "%20."
Edge Core Javascript Guide: The escape and unescape functions let you encode and decode strings. The escape function returns the hexadecimal encoding of an argument in the ISO Latin character set. The unescape function returns the ASCII string for the specified hexadecimal encoding value.


encodeURI() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '

英文解释:MSDN JScript Reference: The encodeURI method returns an encoded URI. If you pass the result to decodeURI, the original string is returned. The encodeURI method does not encode the following characters: ":", "/", ";", and "?". Use encodeURIComponent to encode these characters. Edge Core Javascript Guide: Encodes a Uniform Resource Identifier (URI) by replacing each instance of certain characters by one, two, or three escape sequences representing the UTF-8 encoding of the character


encodeURIComponent() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。不会被此方法编码的字符:! * ( )

英文解释:MSDN JScript Reference: The encodeURIComponent method returns an encoded URI. If you pass the result to decodeURIComponent, the original string is returned. Because the encodeURIComponent method encodes all characters, be careful if the string represents a path such as /folder1/folder2/default.html. The slash characters will be encoded and will not be valid if sent as a request to a web server. Use the encodeURI method if the string contains more than a single URI component. Mozilla Developer Core Javascript Guide: Encodes a Uniform Resource Identifier (URI) component by replacing each instance of certain characters by one, two, or three escape sequences representing the UTF-8 encoding of the character.


因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。
       另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。

英文注释:The escape() method does not encode the + character which is interpreted as a space on the server side as well as generated by forms with spaces in their fields. Due to this shortcoming, you should avoid use of escape() whenever possible. The best alternative is usually encodeURIComponent().Use of the encodeURI() method is a bit more specialized than escape() in that it encodes for URIs [REF] as opposed to the querystring, which is part of a URL. Use this method when you need to encode a string to be used for any resource that uses URIs and needs certain characters to remain un-encoded. Note that this method does not encode the ' character, as it is a valid character within URIs.Lastly, the encodeURIComponent() method should be used in most cases when encoding a single component of a URI. This method will encode certain chars that would normally be recognized as special chars for URIs so that many components may be included. Note that this method does not encode the ' character, as it is a valid character within URIs.

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1、   传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。                            

例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');</script>

2、   进行url跳转时可以整体使用encodeURI

例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

3、   js使用数据时可以使用escape

[Huoho.Com编辑]

例如:搜藏中history纪录。

4、   escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。


最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

国密SM2跨语言加解密互通实战:JS、C#、Java全链路配置指南 非对称加密是保障数据传输安全的核心技术,其原理基于公钥与私钥的配对使用,公钥公开用于加密,私钥保密用于解密。相较于国际通用的RSA算法,国密SM2算法基于椭圆曲线密码学(ECC),在同等安全强度下具有密钥更短、运算更快的优势,尤其适用于对性能和安全有高要求的金融、政务及物联网场景。实现其技术价值的关键在于工程化应用,而跨语言、跨平台的密钥与数据格式互通是常见的实践难点。本文聚焦于**跨语言互通**与**密钥格式**两大核心挑战,通过解析SM2在JavaScript、C#和Java中的具体实现,提供从密钥生成 阅读详情

相关推荐

JavaScript中Unicode转码方法详解

在JavaScript中,处理Unicode编码是很常见的任务之一。本文将详细介绍JavaScript中的Unicode转码方法,并提供相应的源代码示例。要将字符串转换为Unicode编码,可以使用JavaScript的charCodeAt()方法。方法获取每个字符的Unicode编码,然后将其转换为16进制表示,并添加到。最后,将字符拼接成完整的字符串,并返回结果。如果要将Unicode编码转换回字符串,可以使用JavaScript的。函数接受一个字符串作为参数,并遍历字符串中的每个字符。

CodeWhizZ的博客 1441

js对url进行编码解码(三种方式)

escape官方已不推荐使用了,基本淘汰了,如果想对URL编码,最好不要使用此方法,encodeURI和比较常用。前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。如果文章对你有所帮助,!博主会持续更新。。。。

富朝阳的博客 3万+

Crypto-JS:JavaScript的全面加密技术指南

crypto-jscrypto-jsSHA(Secure Hash Algorithm)系列是一组用于生成信息摘要的加密哈希函数。SHA-1产生一个160位的散列值(哈希值),虽然由于设计上的缺陷不再被认为是安全的,但仍然在许多应用中使用。SHA-256是SHA-2家族的一部分,它生成一个256位的哈希值,提供了更高的安全性,被广泛用于密码学应用。

weixin_42560991的博客 1452

Js中对URL进行转码与解码

escape 和 unescape escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。 采用unicode字符集对指定的字符串除0-255以外进行编码。所有的空格符、标点符号、特殊字符以及更多有联系非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。 escape不编码字符有...

日常爱喝茶,闲时聊科技 2351

encoding.js:转换或检测JavaScript中的字符编码

encoding.js 转换JavaScript中的字符编码。 安装 在浏览器中: < script src =" encoding.js " > </ script > 或者 < script src =" encoding.min.js " > </ script > 对象编码将在全局范围内定义。 数组的转换和检测(如Array对象)。 在Node.js中: encoding.js是在npm中按encoding-japanese的模块名称发布的。 npm install encoding-japanese var encoding = require ( 'encoding-japanese' ) ; 每种方法也可用于Node.js中的Buffer 。 凉亭: bower install encoding-japanese CDN encoding.js在上。 转

JS版 UrlEncode

JS版 UrlEncode 和 UrlDecode 函数

js编码方式详解

js 对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1、   传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。                             例如:document.wri

fanhaiwang520的专栏 575

四旋翼无人机Matlab建模

本文主要分享一下四旋翼无人机的建模过程,然后在Matlab的simulink模块搭建起四旋翼无人机的模型,下一章将结合这个模型设计双环PID控制器并调节参数。 一、无人机建模过程

qq_36903625的博客 3万+

Javascript三种文字编码方式(对应java里的编解码)

一、Javascript里三种编码方式 js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent, 相应3个解码函数:unescape,decodeURI,d  ecodeURIComponent 1、   传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

Vern的专栏 2881

用OpenCV+ROS实现焊接机器人智能纠偏:线激光视觉的算法调参全流程

本文详细介绍了基于OpenCV和ROS的焊接机器人智能纠偏系统全流程。通过线激光视觉系统实时感知焊缝,重点解析了抗干扰图像预处理、改进的Steger算法提取激光条纹中心线,以及从2D像素到机器人基坐标系的完整坐标变换。该系统为应对焊接飞溅、弧光等复杂工况,实现高精度实时路径纠偏提供了从算法优化到工程集成的完整解决方案。

vodka的博客 159

嵌入式开发语言-C语言编程

C语言编程概述环境在Windows上构建C语言的环境安装在Mac上构建C语言的环境安装 概述 “C语言”被称为适合嵌入式系统开发的编程语言之一。 C语言在一般的编程中也是熟悉的开发语言,但实际上,如果试着使用C语言制作微型计算机的控制程序等,就必须使用与“普通的C程序”不同的使用方法。 作为一般的C语言的学习方法,使用“printf”“scanf”等标准函数的程序开发是固定的,但这些都是以UNIX和Windows等环境上的应用程序开发为前提的。 对此,没有显示器和键盘的嵌入式系统的微型计算机控制程序,该如何

编程老王 7978

以指定的编码方式引入js文件解决js乱码

如果页面文件和js文件编码方式不一致,引入js文件,不指定编码方式,常常会出现乱码现象,js报错。怎么以指定编码引入js呢?   以utf-8格式引入,类似方式如下:

心灵净土 1万+

Visual studio 2013 配置 Halcon 13 (非抄袭)

Visual studio 2013 配置 Halcon 13.0.2.2 (其他版本适用) 针对网上抄袭的配置方法均不可用,写了一篇亲试可行的配制方法。如下: 1.下载Halcon安装后(C:\Program Files\MVTec\HALCON-13.0) 添加环境变量,(按下win按键,键入“环境变量”,出现 “编辑系统环境变量”后按下enter即可打开,下方找到“环境变量”按钮)的系...

huyanjackson的专栏 1042

JS文件默认编码方式及修改

JS文件默认编码方式及修改 .  打开一个 js 文件,编辑完成保存时,提醒下面的错误: Save could not be completed. Reason: Some characters cannot be mapped using “ISO-8859-1″ character encoding. Either change the encoding or r

gaohongijj的专栏 4050

分享通达信破解交易接口的使用!

那其实通达信破解交易接口的使用方法比较复杂,这里以MA均线指标为例子,只要理解了这些操作步骤,就可以很容易地使用其他指标包括自己编写的指标来进行交易。委托结果(包含委托编号), 需要分配 1024*1024 字节的空间。委托结果数组, 每项结果需要分配 1024*1024 字节的空间。0: 买入, 1: 卖出, 2: 融资买入, 3: 融券卖出,4: (市价委托)上海五档即成剩撤, 深圳五档即成剩撤。4: 买券还券, 5: 卖券还款, 6: 现券还券。0: 上海限价委托, 深圳限价委托。

1841085904的博客 2360

14、网络切片技术:原理、应用与挑战

本文详细探讨了网络切片技术的原理、应用场景及其在5G网络中的重要性。网络切片作为一种关键的网络架构技术,能够在同一物理网络上创建多个独立的逻辑网络,以满足不同应用对安全性、可靠性和性能的多样化需求。文章深入分析了网络切片在5G、SDN/NFV等技术背景下的发展与挑战,并探讨了其在制造业、交通运输、零售等多个行业的实际应用。此外,还介绍了网络切片的部署流程、未来发展趋势以及相关技术难点,为读者全面了解网络切片技术提供了有价值的参考。

palm99的专栏 254

JavaScript 中URL编码方式

JavaScript 中URL编码方式 其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是%5c。 Javascript存在几种url字符串的编码方式:escape(),encodeURI(),以及encodeURIComponent()。这几种编码方式所起的作用各不相同。 ...

weixin_42371145的博客 900

Qt入门教程【Core篇】singal and slot信号与槽

Qt中信号与槽singal and slot

小鱼酱的博客 2450

js编码方式

  三种编解码方式 js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1、   传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。                           例如...

wxn_yxm 252

【人工智能之深度学习】12. BERT微调实战:医疗文本分类的领域自适应技巧与工业级实现

摘要:医疗文本分类是自然语言处理在医疗健康领域的核心应用,可辅助疾病诊断、病历结构化和医疗质量监控。然而,医疗文本的专业术语密集、实体关系复杂及数据长尾分布等特性,导致通用BERT模型性能受限。本文系统阐述医疗文本分类的领域自适应技术,从理论原理到工业级实现展开全流程讲解。首先分析医疗文本的独特属性及技术挑战;随后详解领域继续预训练、适配器微调、对抗训练等核心技术的数学原理;构建包含数据预处理、模型优化、隐私保护的完整实战架构;通过疾病分类、情感分析、事件检测三大案例验证技术有效性。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1006

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

js加密,三种编码方式

js加密,三种编码方式 ·escape(69个):*/@+-._0-9a-zA-Z ·encodeURI(82个):!#$&’()*+,/:;=?@-._~0-9a-zA-Z ·encodeURIComponent(71个):!’()*-._~0-9a-zA-Z c#解密: HttpUtilit...

mk363255751的专栏 593

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: javascript文字编码函数
下一篇: 使用面向对象的技术创建高级 Web 应用程序
winter_leaf_wei
博客等级 码龄25年 9粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值