`
ygsilence
  • 浏览: 336831 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Js转码

    博客分类:
  • JS
js 
阅读更多
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



AJAX传递中文字符串时必须把中文字符串编码成unicode,一般会用到JS的自带函数escape().不过找到了更好的函数来确决中文字符转换成unicode编码的函数

function uniencode(text) 
{ 
    text = escape(text.toString()).replace(/\+/g, "%2B"); 
    var matches = text.match(/(%([0-9A-F]{2}))/gi); 
    if (matches) 
    { 
        for (var matchid = 0; matchid < matches.length; matchid++) 
        { 
            var code = matches[matchid].substring(1,3); 
            if (parseInt(code, 16) >= 128) 
            { 
                text = text.replace(matches[matchid], '%u00' + code); 
            } 
        } 
    } 
    text = text.replace('%25', '%u0025'); 
  
    return text; 
}
当然服务器端要对编码过的字符串进行第二次转码.把字符串转换成UTF-8编码.


function convert_int_to_utf8($intval) 
{ 
    $intval = intval($intval); 
    switch ($intval) 
    { 
        // 1 byte, 7 bits 
        case 0: 
            return chr(0); 
        case ($intval & 0x7F): 
            return chr($intval); 
  
        // 2 bytes, 11 bits 
        case ($intval & 0x7FF): 
            return chr(0xC0 | (($intval >> 6) & 0x1F)) . 
                chr(0x80 | ($intval & 0x3F)); 
  
        // 3 bytes, 16 bits 
        case ($intval & 0xFFFF): 
            return chr(0xE0 | (($intval >> 12) & 0x0F)) . 
                chr(0x80 | (($intval >> 6) & 0x3F)) . 
                chr (0x80 | ($intval & 0x3F)); 
  
        // 4 bytes, 21 bits 
        case ($intval & 0x1FFFFF): 
            return chr(0xF0 | ($intval >> 18)) . 
                chr(0x80 | (($intval >> 12) & 0x3F)) . 
                chr(0x80 | (($intval >> 6) & 0x3F)) . 
                chr(0x80 | ($intval & 0x3F)); 
    } 
} 
这样中文字符串就可以转换成UTF-8编码.这种方法适合各种服务器环境..



分享到:
评论

相关推荐

    javascript转码GBK(u2gb.js)

    在JavaScript中,字符串默认采用Unicode编码,但有些环境或者接口可能需要GBK编码,这就需要进行转码操作。 `u2gb.js`的实现原理通常是基于JavaScript的内置函数`charCodeAt()`,该函数可以获取字符串中指定位置...

    java解码与js转码

    java解码与js转码用于解决乱码问题.很好用的哦。不错的选择

    如何通过JS实现转码与解码

    这篇文章主要介绍了如何通过JS实现转码与解码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 escape 和 unescape escape()不能直接用于URL编码,它的真正作用...

    JS字符集转码函数

    万能转码函数,解决中文字符转码问题、GBK转utf8问题,utf8转gbk等等各种转码、乱码问题。

    traceur.js转码器

    traceur-----Google出的编译器,把ES6编译成ES5。Traceur允许将ES6代码直接插入网页。首先,必须在网页头部加载Traceur库文件。

    javascript转码

    ### JavaScript中的URL编码方法 在JavaScript中,有三种主要的方法用于对字符串进行URL编码:`escape()`、`encodeURI()` 和 `encodeURIComponent()`。这三种方法虽然功能相似,但适用场景和编码规则各不相同。 ###...

    js/html转码工具

    js/html转码工具

    七牛云 实时转码demo

    【七牛云实时转码技术详解】 在当前的互联网时代,多媒体内容的传输与播放已经成为日常,而视频作为其中重要的一环,其处理技术尤为重要。七牛云作为一家领先的云计算服务提供商,提供了一整套完善的视频处理解决...

    js二维码生成中文转码

    JavaScript(简称js)作为浏览器端常用的编程语言,能够方便地实现二维码的生成。在处理包含中文字符的二维码时,由于编码问题,我们需要进行中文转码以确保信息正确显示。本文将详细探讨“js二维码生成”以及“中文...

    利用JS把URL地址栏%20、%55之类编码转成中文字符

    本文将深入探讨如何使用JavaScript(简称JS)来解码这些URL编码,使其转换回原本的中文或其他非英文字符。 ### URL编码与解码原理 URL编码的主要目的是确保URL中的所有字符都能在网络上传输,避免因特殊字符导致的...

    JavaScript中文转码国际化

    用JavaScript脚本在网页实现的中文Unicode码转换

    txt乱码解决处理文本文件转码编码csv器gbk互转utf-8自动批量工具html,js,css,md,json,log,py

    JavaScript (.js) Java (.java) C/C++ (.c, .cpp, .h) HTML (.html, .htm) CSS (.css) 其他编程语言的源代码文件 配置文件 JSON (.json) YAML (.yaml, .yml) XML (.xml) INI (.ini) Properties (.properties) 脚本...

    处理emoji表情 js unicode转码解码方法封装类,自己项目中使用的东西

    处理emoji表情 js unicode转码解码方法封装类,自己项目中使用的东西 处理emoji表情 js unicode转码解码方法封装类,自己项目中使用的东西

    js字符集转码函数

    根据给定的信息,本文将详细解释“js字符集转码函数”的相关内容,包括函数的作用、原理及使用方法。 ### js字符集转码函数概述 在Web开发中,字符集编码是一个重要的概念。不同的系统和软件可能采用不同的字符集...

    视频格式转码源码

    本文将深入探讨如何使用JavaScript(JS)实现视频转码,以适应网页播放的需求。 标题"视频格式转码源码"表明我们要讨论的是一个利用编程语言进行的视频编码转换过程,而在这个案例中,我们使用的编程语言是...

    js对字符串进行base64转码/解码

    ### JavaScript中的Base64编码与解码 #### 一、Base64编码简介 Base64是一种基于64个字符的编码方式,被广泛应用于电子邮件、网页和其他需要将二进制数据转换为文本格式的场景中。由于互联网传输的数据通常需要以...

    JSP中js传递和解析URL参数以及中文转码和解码问题.docx

    ### JSP中JS传递与解析URL参数及中文转码解码问题详解 #### 一、引言 在Web开发中,尤其是使用Java Server Pages (JSP)进行开发时,经常需要处理URL中的参数,包括参数的传递、解析以及对中文等特殊字符的处理。...

    js base46转码、保存图片到本地、img显示本地图片.zip

    在这个"js base46转码、保存图片到本地、img显示本地图片.zip"的压缩包中,我们聚焦于JavaScript处理图像的一些核心功能,包括Base64编码、在页面上显示本地图片以及将图片保存到用户本地。下面,我们将深入探讨这些...

    微信转码源码.rar

    1. **预处理器**:这部分代码可能包含一个预处理器,用于将标准的JavaScript、HTML或CSS转换为WXML、WXSS和符合微信小程序规范的JS。预处理器的任务是解析原始代码,添加必要的标记,以便微信小程序引擎能够正确解析...

    gulp_js_es6-es5_转码及压缩.rar

    在JavaScript的世界里,随着ES6(ECMAScript 2015)的引入,开发者们享受到了诸多新特性带来的便利,如箭头函数、类、模板字符串等。然而,由于浏览器对ES6的支持程度不一,为了确保代码能在广泛使用的环境中运行,...

Global site tag (gtag.js) - Google Analytics