`
sitoto
  • 浏览: 124198 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

unescape编码错误

    博客分类:
  • ruby
阅读更多
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版本的escape和unescape函数

    了解并熟练运用这两个函数,可以帮助开发者避免因字符编码问题引发的诸多错误,从而提高程序的稳定性和兼容性。在阅读`EscapeUnescape.java`文件后,你可以更深入地理解这些概念,并将其应用到自己的项目中。

    前端开源库-unescape-html

    `unescape-html`是一个专为前端开发者设计的开源库,其主要功能是将已经HTML实体编码的字符串还原成可读的HTML格式,与`escape-html`的功能相反,后者是将HTML特殊字符转义为实体。 HTML实体编码是一种常用的防止...

    escape编码与unescape解码汉字出现乱码的解决方法

    接着,使用`unescape()` 对这些错误的编码尝试解码,由于输入的转义序列并不对应任何合法的汉字,因此解码后的结果是无法识别的字符,再次产生乱码。 解决这个问题的关键在于确保编码和解码过程中的字符集一致。在...

    PHP实现JS中escape与unescape的方法

    JavaScript中的escape函数可以将字符串转换为unicode十六进制编码,而unescape函数则可以将这种编码转换回原始字符串。由于JSON的编码格式与这种unicode十六进制编码形式相同,因此我们可以通过PHP中的json_encode和...

    js中的escape及unescape函数的php实现代码

    `unescape` 函数则是用于反转 `escape` 的操作,即把经过 `escape` 编码后的字符串解码回原始字符串: ```javascript console.log(unescape("Hello%20World!")); // 输出: "Hello World!" ``` #### 三、PHP中的`...

    js escape,unescape解决中文乱码问题的方法

    因此,了解这些JavaScript内建方法能够帮助开发者更好地处理和预防编码相关的错误,确保在不同环境下字符数据的正确表示和传输。尽管如此,对编码的深入理解仍然是每一个前端开发者必须具备的知识点,以便在开发过程...

    web 编码问题

    此外,使用`encodeURIComponent`、`decodeURIComponent`、`escape`和`unescape`等函数处理字符串时要特别注意它们之间的区别。 5. **Ajax测试**: 压缩包中的`ajaxTest`可能是一个示例项目,用于演示或测试AJAX...

    js对中文字符串进行gb2312编码解码

    在JavaScript中,我们可以使用内置的`escape()`和`unescape()`函数来实现GB2312编码和解码。但是需要注意的是,这两个函数并不直接支持GB2312,它们默认使用的是UTF-8编码。因此,我们需要自定义函数来实现GB2312的...

    Web开发编码助手++++

    在Web开发过程中,编码与解码是至关重要的环节,它们涉及到数据传输、页面展示和用户交互等多方面。...在实际开发中,掌握这些基础知识和使用工具,能够有效提高开发效率,避免因编码问题引发的诸多错误。

    js中文乱码问题分析及解决方案.docx

    在Web开发中,JavaScript文件的编码问题是一个常见的错误,特别是在引入外部JavaScript文件时。如果Web页面和JavaScript文件使用不同的编码,可能会出现乱码问题。本文将分析JavaScript中文乱码问题的原因,并提供...

    PHP下escape解码函数的实现方法

    在PHP编程语言中,`escape`解码通常指的是将通过URL编码、HTML实体编码等方式处理过的字符串还原为原始形式。...正确地解码字符串能够确保数据的准确性和可读性,避免因编码问题导致的乱码或错误。

    保证JavaScript和Asp、Php等后端程序间传值编码统一

    明确在何时、何地以及使用什么方式对数据进行编码和解码,能够避免编码错误导致的乱码问题。 6. 实际应用中,如果遇到无法通过一次函数调用完全解码的情况,可以尝试组合使用不同的解码函数,甚至可能需要反复尝试...

    js字符编码函数区别分析

    JavaScript提供了几个内建函数来处理字符的编码与解码,主要的编码函数包括:escape、encodeURI和encodeURIComponent,而对应的解码函数分别为unescape、decodeURI和decodeURIComponent。在本分析中,我们将详细探讨...

    Java文本字符编码解码操作类 Escape.java源代码.rar

    2. `unescape()`方法:与`escape()`对应,该方法用于反转编码过程,将转义序列转换回原始字符。例如,将`%20`解码为空格。 3. 兼容性处理:考虑到不同系统或环境可能使用不同的编码规则,`Escape.java`可能包含兼容...

    JSP页面中文传递参数使用escape编码

    这个功能特别适用于将中文字符等非ASCII字符转换为URL兼容格式,从而避免在Web应用中传递数据时出现编码错误。 在进行参数传递时,通常需要处理两种编码方式:一种是客户端的编码(发送前的编码),另一种是服务器...

    js代码进行base64的编码与解码

    如果字符串中含有非ASCII字符,如Unicode字符,这些函数可能会抛出错误。因此,在处理非ASCII字符串时,通常需要先将其转换为UTF-8编码。 ```javascript let utf8Str = unescape(encodeURIComponent("你好,世界!")...

    jquery获取URL中参数解决中文乱码问题的两种方法

    从A页面通过url传参到B页面时,解析url参数可以用下面两种方法: 方法一:正则分析法 代码...= null) return unescape(r[2]); return null; } 这样调用: 代码如下: alert(GetQueryString(“参数名1”)); aler

    url参数乱码二

    3. **使用错误的解码函数**:在JavaScript中,除了`decodeURIComponent`外,还有`unescape`函数,它们在处理URL编码时有所不同,错误使用可能导致乱码。 4. **中文字符处理不当**:中文字符在URL中需要进行特殊的...

    javascript URL编码和解码使用说明

    综上所述,正确的使用这些方法可以避免在Web开发中常见的URL编码错误。在进行前后端数据交互时,合理地选择编码方法能够保证数据的完整性和准确性。同时,为了能够在后端正确解码这些信息,服务器端也需要具备处理...

    JS实现的Unicode编码转换操作示例

    此外,示例还提到了本站专题,其中包含了关于JavaScript的多个专题内容,如编码操作技巧、加密解密技巧、错误与调试技巧、数据结构与算法技巧、遍历算法与技巧以及数学运算用法等,这些内容对于加深对JavaScript语言...

Global site tag (gtag.js) - Google Analytics