javascript 的 escape 中文 编码成 utf-8格式的
ruby 的 unescape 中文 解析为 gbk编码的,所以ruby无法解析javascript的escape
什么情况下ruby可以解析:
还是中文的问题,在?传递中文参数时请使用encodeURIComponent.
document.write(encodeURIComponent(”中文”)); => %E4%B8%AD%E6%96%87
document.write(escape(”中文”)); => %u4E2D%u6587
Rails 能自动 decode 使用encodeURIComponent的编码,但不能对javascript escape的中文进行unescape.CGI.escape和CGI.unescape方法编码是以GBK方式编码中文的,而javascript的 escape和unescape是utf-8方式。
那如何让ruby解析javascript的 escape呢?
code_str.encode!('utf-8', 'gbk', :invalid => :replace) #忽略无法识别的字符
r3 = code_str.gsub(/\%u([\da-fA-F]{4})/) {|m| [$1].pack("H*").unpack("n*").pack("U*")}
# ruby对某些符号的编码问题 需要另外单独处理,如:
# %d => *
# %20 => +
#
result = CGI::unescape(r3)
US-ASCII 和 UTF-8
UTF-8 包括 US-ASCII 和多字节编码。与普通的多字节编码不同,
UTF-8的字节长度不固定,对于ASCII, 字节长度为1, 对于中文,阿拉伯文等,可以是2,3或更多字节,这样能有效节省存储空间. 它还与很多传统编码标准兼容,所以很受欢迎.
GBK 和 GB2312
GBK中的k是 ‘扩展’的意思,对GB2312...的扩展,更加全面;
分享到:
相关推荐
本工具类用java实现了JavaScript escape/unescape 编码。对接建行支付以及需要向后端传输中文数据时可以使用得到
使用java对字符串进行unicode编码和解码。源程序
Escape加密-UnEscape解密 每一位站长必备的好工具,精而巧!
主要介绍了如何用unescape反编码得出汉字,需要的朋友可以参考下
输入样例: String stest = "中文1234 abcd[](),.~\\";...System.out.println(unescape(escape(stest))); 输出结果: 中文1234 abcd[](),.~\ %u4E2D%u65871234+abcd%5B%5D()%3C%2B%3E%2C.~%5C 中文1234 abcd[](),.~\
js escape,unescape解决中文乱码问题的方法.docx
为了 补缺 网上 C++ Builder XE 应用的不足,推广BCB这个优秀的平台 在 c++ 中实现了 javascript escape unescape 各位加油
主要介绍了escape编码与unescape解码汉字出现乱码的解决方法,需要的朋友可以参考下
前端开源库-unescape-htmlunescape html,与escape html相反
unescape加html加解密很好用的东西,JS把HTML加密很好用的东西。
这是一个网页文件,运行后把escape加密的部分粘贴进去后点解密就可以还原成html源代码,也可以对html代码加密,集加密解密于一身
博文链接:https://icsnowing.iteye.com/blog/224664
java实现js的escape和unescape方法
javascript-escape-unescape Javascript Escape / Unescape 使用编码的Escape / Unescape特殊字符 图片示例:
JavaScript unescape() 函数可对通过 escape() 编码的字符串进行解码。 语法 unescape(string) 参数 描述 string 必需。要解码或反转义的字符串。 返回值 string 被解码后的一个副本。 说明 该函数的工作...
Function properties of the global object unescape( string ).
asp函数实现javascript里的escape函数和unescape函数功能
本篇文章是对使用PHP实现javascript的escape和unescape函数的方法进行了详细的分析介绍,需要的朋友参考下