`

解决乱码的编码转换函数

    博客分类:
  • ajax
阅读更多
大家都知道,xmlhttp在通信时采用的是utf编码,而国内很多网页的信息都是采用gbk编码,所以当直接通过ajax去连接网页,并将获取到的信息直接显示的话就会出现乱码的现象,有些时候无法改变服务器端网页的编码(例如获取别的网站的天气预报信息),在这种时候就只能在客户端通过js做编码的工作了,下面这段js就是用于将服务器端返回的gbk编码字符串转换为utf编码字符串:
function gb2utf8(data){ 
    var glbEncode = []; 
    gb2utf8_data = data; 
    execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript"); 
    var t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2"); 
    t=t.split("@"); 
    var i=0,j=t.length,k; 
    while(++i<j) { 
        k=t[i].substring(0,4); 
        if(!glbEncode[k]) { 
            gb2utf8_char = eval("0x"+k); 
            execScript("gb2utf8_char = Chr(gb2utf8_char)", "VBScript"); 
            glbEncode[k]=escape(gb2utf8_char).substring(1,6); 
        } 
        t[i]=glbEncode[k]+t[i].substring(4); 
    } 
    gb2utf8_data = gb2utf8_char = null; 
    return unescape(t.join("%")); 
}  这段代码也是从网上搜到的,具体是谁写的不清楚,所以在此未标明作者,如作者看到还请见谅。
有了这段代码后,就可以直接对返回的网页内容进行编码了:
  var response=gb2utf8(response.responseBody);
  经过这样的转码后所获得的页面内容就不会有乱码现象了;
  当然,如果服务器端页面采用的是utf-8的编码那就根本不需要进行编码工作了。

分享到:
评论

相关推荐

    乱码解决 乱码解决 乱码解决 乱码解决 乱码解决

    在编程中,可以使用相应语言的函数或库进行编码转换,如Python的`codecs`模块。 3. **修改程序设置**:如果乱码问题是由程序设置不当引起的,调整程序配置,确保它能正确识别和处理各种编码。 4. **修复文件头信息...

    中英文字符转换解决乱码问题

    通过对字符编码的深入理解和掌握,以及利用适当的编码转换技术(如Base64),我们可以有效解决跨平台、跨语言环境下的乱码问题,确保数据的准确传输和展示。在现代软件开发中,这些技巧对于构建全球化、多语言支持的...

    PHP编码转换函数utf-gb-big5

    1. `iconv()`:这是PHP中最常用的编码转换函数,它能够处理大部分的字符编码转换。例如,将UTF-8编码的字符串转为GBK,可以这样写: ```php $utf8_str = "你好,世界"; $gbk_str = iconv("UTF-8", "GBK//TRANSLIT...

    asp中有关字符编码转换的几个函数.

    通过以上介绍的函数,可以有效地解决ASP中字符编码转换的问题,尤其是中文乱码问题。这些函数的实现不仅考虑了字符编码的基本原理,还针对特定情况做了优化处理,从而确保了转换的准确性和效率。在实际应用中,可以...

    解决gb2312编码导致乱码问题

    在提供的文件`gbk.js`中,可能包含了专门用于处理gb2312编码的JS函数或工具,用于在IE环境下进行编码转换。这些函数可能包括读取gb2312编码的数据,将其转换为UTF-8或其他编码,以便在现代浏览器或系统中正确显示。 ...

    PHP编码转换函数mb_convert_encoding与iconv用法_.docx

    本文将详细讨论PHP中的两个编码转换函数`mb_convert_encoding`和`iconv`的使用方法,以及它们在实际场景中的应用。 首先,`mb_convert_encoding`函数用于将字符串`str`的字符编码从`from_encoding`转换到`to_...

    新编码转换大全.rar

    编码转换的工具和方法多样,例如使用编程语言内置的函数(如Python的`codecs`模块,Java的`Charset`类),或者使用专门的转换软件(如Notepad++的“编码”菜单,或是在线转换工具)。在进行编码转换时,需谨慎操作,...

    结果乱码的各种函数

    字符编码转换函数 这些函数用于在不同字符编码之间进行转换,包括从多字节到宽字符以及从宽字符到多字节的转换。 #### 多字节到宽字符:MultiByteToWideChar ```vb Private Declare Function MultiByteToWideChar...

    Discuz 提供的编码转换工具

    总的来说,"Discuz 提供的编码转换工具"是为了解决不同编码格式间的兼容性问题,确保在Discuz!论坛中的数据可以顺利地在UTF-8和GBK之间转换,以满足多语种用户的需求。通过批处理脚本和相关库的支持,这个工具使得这...

    详解PHP编码转换函数应用技巧

    下面介绍的这个函数就是有关PHP编码转换函数。希望对大家有所帮助。mb_convert_encoding 函数为PHP内部多字节字符串编码...* 多字节字符串编码转换函数  *  * @param string str 需要进行编码转换的字符串  * @param

    java .net php .js 乱码转换器

    5. **编码转换函数**:在Java、.NET、PHP和JavaScript中都有相应的API用于编码转换,如Java的`new String(byte[], charset)`,.NET的`Encoding.Convert()`,PHP的`iconv()`,JavaScript的`TextDecoder`和`...

    易语言调用API实现编码转换

    总之,易语言调用API实现编码转换是一个涵盖易语言基础、编码理论、API使用技巧、错误处理等多个方面的重要话题,通过深入学习和实践,不仅可以提升编程技能,还能为解决实际问题提供有力工具。

    Windows10 + qt5.8.0解决编码乱码问题总结.pdf

    示例代码中的osgDB::writeImageFile函数是一个图像文件写入函数,它在写入时也要使用编码转换,确保图像文件名中的中文字符被正确处理。 在应用这些方法时,应该注意Qt库中的QTextCodec类,它为Qt中的文本编码提供...

    易语言编码转换将任何编码转换到GB2312模块源码

    易语言编码转换模块的核心功能在于解决字符集不兼容的问题。在处理文本文件或网络数据时,如果原始编码与目标编码不一致,可能会导致乱码。这个模块提供了一个解决方案,能够将任意编码格式的字符串或文件转换成GB...

    PHP编码转换函数mb_convert_encoding与iconv用法__1.docx

    另一方面,`iconv`函数也是PHP中用于编码转换的一个重要工具,它的语法相对简单: ```php mixed iconv ( string $in_charset , string $out_charset , string $str ) ``` - `$in_charset`:输入字符串的编码。 - `...

    易语言网页乱码转换

    网页乱码通常出现在两种情况:一是网页的原始编码与浏览器识别的编码不一致,二是数据在传输过程中编码转换出现问题。在易语言中,我们可以编写程序来识别和转换这些乱码,以确保网页内容正确显示。 1. **编码基础*...

    完整版新编码转换大全模块+应用例程().rar

    这个"完整版新编码转换大全模块+应用例程()"压缩包文件似乎提供了一个全面的解决方案,涵盖了各种编码转换的工具和示例代码,这对于开发者来说是极其宝贵的资源。 编码转换涉及到计算机如何存储和处理文本数据。...

    php 编码相互转换类(gbk转换utf8)

    描述中的"解决iconv无法完美转换的问题"指出,这个类可能采用了不同的策略或算法来避免`iconv`函数在某些情况下的转换不完整或产生乱码。可能的方法包括预处理数据,识别并处理不兼容的字符,或者使用其他库(如`...

    对ASP_UTF8_下(JS)中文乱码的解码函数

    `bm()` 函数的主要作用是对输入字符串进行编码处理,使其能在不同的编码环境下传输而不会出现乱码。下面详细介绍该函数的工作原理: 1. **初始化变量**: - `s` 用于存储编码后的字符串。 - 循环遍历输入字符串 `...

    易语言批量编码转换工具源码.rar

    在易语言中,编码转换通常涉及到字符集的理解,如ASCII、GBK、UTF-8等,以及相关的转换函数。例如,易语言提供了“字符串转码”和“编码转换”等内置命令,用于处理不同编码间的转换。在批量处理时,需要遍历文件,...

Global site tag (gtag.js) - Google Analytics