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
========================================================
unescape 方法
从用 escape 方法编码的 String 对象中返回已解码的字符串。
function unescape(charString : String) : String
参数
charString
必选。要解码的 String 对象或文本。
备注
unescape 方法返回一个包含 charstring 内容的字符串值。所有以 %xx 十六进制形式编码的字符都用 ASCII 字符集当中等效的字符代替。以 %uxxxx 格式(Unicode 字符)编码的字符用十六进制编码 xxxx 的 Unicode 字符代替。注意 unescape 方法不应用于解码“统一资源标识符”(URI)。请改用 decodeURI 和 decodeURIComponent 方法。
decodeURI 方法
返回一个已编码的统一资源标识符 (URI) 的非编码形式。
function decodeURI(URIstring : String) : String
参数
URIstring
必选。表示编码 URI 的字符串。
备注
使用 decodeURI 方法代替已经过时的 unescape 方法。
decodeURI 方法返回一个字符串值。
如果 URIString 无效,将发生 URIError。
decodeURIComponent 方法
返回统一资源标识符 (URI) 的一个已编码组件的非编码形式。
function decodeURIComponent(encodedURIString : String) : String
必选的 encodedURIString 参数是一个表示已编码的 URI 组件的值。
备注
URIComponent 是一个完整的 URI 的一部分
====================================
因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。
这样就构成了统一的编码格式下面举简单的个例子:
在服务器端:
String encode=java.net.URLEncoder.encode("大家好","utf-8");
//encode=("%E5%A4%A7%E5%AE%B6%E5%A5%BD"
String decode=java.net.URLDecoder.decode("%E5%A4%A7%E5%AE%B6%E5%A5%BD","utf-8");
客户端解码Javascript:
decodeURIComponent(xmlHttp.responseText);
客户端传送时编码:
encodeURIComponent("大家好")
或
encodeURI("大家好")
这样就可以解决中文乱码编码问题了。
分享到:
相关推荐
本文将详细介绍如何使用纯JavaScript实现GBK URL的编解码。 首先,我们需要了解GBK编码的基本原理。GBK编码是一种双字节编码系统,每个字符由两个字节表示,第一个字节是高字节,第二个字节是低字节。在URL编码中,...
直接打包省掉 很多麻烦 开包及用 编码 var s = $url.ecode(m); 解码 var m = $url.ecode(s);
为了优化这一过程,`three.js` 提供了对`Draco`解码器的支持。`Draco`是由Google开发的一个开源库,专注于3D几何数据的压缩和解压缩。它采用高效的编码算法,能够大幅减小3D模型文件的大小,进而提高加载速度,减少...
总的来说,`slaythespire编解码存档`这个项目展示了如何利用Python的编程能力,对游戏存档进行处理和操作,这不仅有助于玩家了解游戏内部机制,也可能为游戏MOD制作、数据分析提供便利。然而,进行此类操作时,务必...
在实践中,你可以使用各种编程语言实现Base64的编解码,例如Python的`base64`库,Java的`java.util.Base64`类,或者JavaScript的`btoa`和`atob`函数。 总结来说,这个"Base64编解码Demo"涉及到将MAC地址和IP地址...
总而言之,JavaScript提供了多种编解码方式以应对不同场景下对字符串的编码与解码需求。合理选择使用不同的函数,不仅能保证编码数据在传输过程中的完整性,也能确保数据的接收方能够正确解析数据。
本压缩包文件"URL网址编解码.rar"可能包含了关于URL编码与解码的详细资料,包括原理、方法以及实际应用。 URL编码是一种将特殊字符转换为ASCII码的过程,以便于在URL中传输。这是因为URL只能包含有限的字符集,主要...
这个压缩包"基于单片机的json编解码源码.zip"提供了C语言实现的JSON编解码工具,非常适合于资源有限的微控制器环境。 首先,让我们了解JSON的基本结构。JSON数据以键值对的形式表示,键必须是字符串,而值可以是...
《深入理解libde265:开启H.265编解码之旅》 在现代数字视频技术领域,高效编码标准对于节省带宽、提升画质具有重要意义。H.265(High Efficiency Video Coding,高效率视频编码)作为最新的视频编码标准,相较于其...
IEC104 定义的时间格式 //毫秒 分钟 小时 日周 月...使用C#实现编解码,编码: public static byte[] DateTimeToBytes(DateTime time){} 解码: public static DateTime BytesToDateTime(byte[] bytes, int offset){}
OpenCV是一个强大的开源计算机视觉库,它包含了丰富的图像处理和计算机视觉功能,其中包括JPEG编解码。JPEG(Joint Photographic Experts Group)是一种广泛使用的有损图像压缩格式,它通过舍弃部分图像数据来达到较...
通过JS传递参数时,如果参数带有.或其它特殊字符,需要进行编码转义下,否则在网络传输时出现乱码,导致传递失败或即使传递成功接收后也无法使用的现象。
在IT行业中,"核心主义价值观编解码"可能是指一种技术或工具,它涉及到文本处理、数据编码与解码,以及可能与特定的核心价值体系相关联。在这个开源项目"core-values-encoder-master"中,我们可以推测它是一个用编程...
MP3编解码技术是数字音频领域中的一个重要组成部分,它涉及到音频信号的压缩与解压缩过程。MP3,全称为MPEG-1 Audio Layer III,是一种有损音频压缩格式,能够在保持可接受音质的前提下大幅度减小音频文件的大小,...
js实现opus的编码和解码的完整代码,其中解码可直接运行html,编码示例需要在机器上启动apache服务。 opus编码:可实现wav读取后,编码为opus,且可保存为opus的文件。 opus解码:打开opus的文件后,可解码出pcm...
下面将详细介绍URL编解码的工作原理和相关知识点。 1. **URL编码** URL编码是一种标准方法,用于在URL(统一资源定位符)中表示特殊字符。按照规定,非字母数字字符需要转换为%xy的形式,其中xy是该字符在ASCII表...
该JavaScript音频库的亮点在于其在浏览器端实现了这些编解码功能,这意味着用户无需服务器端处理即可在客户端进行音频处理,降低了延迟,提升了用户体验。然而,需要注意的是,浏览器的兼容性可能因实现方式的不同而...
投屏功能的实现,MediaCodec编解码,MediaProjection获取屏幕视频,WebSocket传视频数据,SurfaceView显示
G711编码、解码的几种方式;alaw与ulaw的相互转换;alaw与PCB相互转换。
该项目是一个综合性的音视频编解码学习与分析框架设计源码,包含383个文件,涵盖了63个PNG图片文件、55个XML配置文件、31个C++源文件等多种类型。它支持多种语言开发,包括C++、Java、JavaScript、C、MATLAB、HTML和...