`
igogogo9
  • 浏览: 250863 次
  • 性别: Icon_minigender_1
  • 来自: 海口市
社区版块
存档分类
最新评论

用JS如何把utf8转换成GBK的字符编码

阅读更多
function Utf8ToUnicode(strUtf8)
{
        var bstr = "";
        var nTotalChars = strUtf8.length;        // total chars to be processed.
        var nOffset = 0;                                        // processing point on strUtf8
        var nRemainingBytes = nTotalChars;        // how many bytes left to be converted
        var nOutputPosition = 0;
        var iCode, iCode1, iCode2;                        // the value of the unicode.

        while (nOffset < nTotalChars)
        {
                iCode = strUtf8.charCodeAt(nOffset);
                if ((iCode & 0x80) == 0)                        // 1 byte.
                {
                        if ( nRemainingBytes < 1 )                // not enough data
                                break;

                        bstr += String.fromCharCode(iCode & 0x7F);
                        nOffset ++;
                        nRemainingBytes -= 1;
                }
                else if ((iCode & 0xE0) == 0xC0)        // 2 bytes
                {
                        iCode1 =  strUtf8.charCodeAt(nOffset + 1);
                        if ( nRemainingBytes < 2 ||                        // not enough data
                                 (iCode1 & 0xC0) != 0x80 )                // invalid pattern
                        {
                                break;
                        }

                        bstr += String.fromCharCode(((iCode & 0x3F) << 6) | (         iCode1 & 0x3F));
                        nOffset += 2;
                        nRemainingBytes -= 2;
                }
                else if ((iCode & 0xF0) == 0xE0)        // 3 bytes
                {
                        iCode1 =  strUtf8.charCodeAt(nOffset + 1);
                        iCode2 =  strUtf8.charCodeAt(nOffset + 2);
                        if ( nRemainingBytes < 3 ||                        // not enough data
                                 (iCode1 & 0xC0) != 0x80 ||                // invalid pattern
                                 (iCode2 & 0xC0) != 0x80 )
                        {
                                break;
                        }

                        bstr += String.fromCharCode(((iCode & 0x0F) << 12) |
                                        ((iCode1 & 0x3F) <<  6) |
                                        (iCode2 & 0x3F));
                        nOffset += 3;
                        nRemainingBytes -= 3;
                }
                else                                                                // 4 or more bytes -- unsupported
                        break;
        }

        if (nRemainingBytes != 0)
        {
                // bad UTF8 string.
                return "";
        }

        return bstr;
}
分享到:
评论
1 楼 月影无痕 2010-03-14  
经过测试,这是无效的,遇到中文就会出现问题

但是英文是可以的。

相关推荐

    gbk汉字转utf8编码的转换函数,亲测有用

    总结一下,GBK到UTF-8的转换涉及到字符编码理论、编程语言的字符串处理以及错误处理机制。在实际应用中,我们不仅需要理解这些概念,还要根据具体编程环境选择合适的方法进行转换,同时确保程序的健壮性,处理可能...

    GBK和UTF-16编码的转换接口

    包含GBK和UTF16字符集的对照表,用于将GBK字节流和UTF字符串之间的互相转换。

    UTF8GBK互转换工具

    标题中的“UTF8GBK互转换工具”是一款软件或在线服务,专门用于在UTF-8和GBK两种字符编码之间进行转换。UTF-8和GBK是计算机领域中常见的字符编码标准,它们各自有不同的特性和应用场景。 UTF-8(Unicode ...

    字符编码转换类,支持 ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom互相转换

    本文将深入探讨PHP中的字符编码转换,特别是针对ANSI、Unicode(包括Little Endian和Big Endian)、UTF-8以及UTF-8+BOM的转换。 首先,让我们了解这些编码格式的含义: 1. ANSI编码:通常指的是Windows系统的默认...

    javascript转码GBK(u2gb.js)

    总的来说,`u2gb.js`是一个实用的JavaScript工具,它简化了Unicode到GBK编码的转换过程,使得开发者在处理中文字符编码问题时更加便捷。在实际开发中,理解字符编码的原理以及如何在JavaScript中进行转换是非常重要...

    js的encodeUri编码转换为GBK问题

    在处理包含GBK字符的URI时,如果直接使用`encodeURI`,可能会导致乱码问题。这是因为`encodeURI`默认使用的是UTF-8编码,与GBK不兼容。 要解决这个问题,我们需要将GBK编码的字符串转换为UTF-8,然后进行URI编码。...

    纯Javascript脚本实现GBK URL编解码

    在互联网应用中,数据传输时常会遇到字符编码问题,特别是在中文环境下。GBK是GB2312编码的扩展,广泛用于简体中文环境。URL编码是将非ASCII字符转换为可安全包含在URL中的形式,而URL解码则是将这些编码还原为原始...

    js实现GBK编码

    在处理中文字符集时,我们经常会遇到编码问题,尤其是当服务器与客户端使用不同的字符编码标准时,如GBK(国标扩展编码)和UTF-8(万国码)。GBK编码是中国大陆使用的一种广泛的标准,它包含了GB2312中的所有汉字,...

    网页文件批量gbk转UTF8

    GBK(Great Chinese Character Set)是中国大陆广泛使用的汉字编码标准,而UTF-8是国际通用的Unicode编码标准,支持世界上几乎所有的字符集。在处理跨平台或者多语言的网站时,UTF-8因其广泛的兼容性和可扩展性而更...

    Node.js-iconv-lite-纯javascript转换字符编码

    `iconv-lite` 支持多种常见的字符编码,如 UTF-8、GBK、BIG5、ISO-8859-1 等,使得开发者能够轻松地在不同编码之间进行转换,避免乱码问题。 在实际应用中,`iconv-lite` 的使用方法非常直观。首先,你需要通过 npm...

    GBK转UTF8(模版格式转换)

    GBK和UTF-8是两种常见的字符编码标准,它们各自有其特点和适用场景。本篇文章将详细解析这两种编码的区别以及如何进行转换,特别是针对批量处理的需求。 GBK编码是中国大陆广泛使用的汉字编码标准,它是GB2312的...

    GBK转UTF8工具 网页编码 互转工具

    GBK和UTF-8是两种常见的字符编码格式,它们各有特点,适用于不同的场景。 GBK编码,全称“汉字内码扩展规范”(GBK, Chinese Internal Code Specification),是中国大陆使用的一种汉字编码标准,基于GB2312并兼容...

    js实现GBK编码,解决乱码

    在实现中,它可能利用了ArrayBuffer、DataView等低级别的JavaScript数据类型,将UTF-8字符转换为GBK编码的字节序列。 2. `decodeGBK(buffer)`: 这个函数接收一个GBK编码的字节序列(通常是ArrayBuffer或Uint8Array...

    utf8文件编码转换器

    UTF8文件编码转换器是一种工具,它允许用户将文件从一种字符编码格式转换为UTF-8编码格式。在计算机科学和网页开发领域,文件编码是非常关键的,因为它决定了文本如何被正确地读取和显示。UTF-8是目前最常用的多语言...

    网站模板编码转换小助手(UTF8和GBK互转)V2016

    网站模板编码转换小助手是一款小巧的编码转换工具,快来... 软件功能 本软件可以将网站模板编码批量由UTF8转换成GBK模式或者有GBK模式批量转换为UTF8模式,目前支持.htm、.html、.php、.js、.css等常用格式编码转换。

    GB转UTF8字符工具

    在本案例中,我们关注的焦点是“GB转UTF8字符工具”,这是一款用于转换代码文件编码的实用程序,主要功能是将GB2312、GBK编码的文件转换为UTF-8编码,或者反过来,将UTF-8编码的文件转换为GB2312或GBK编码。...

    中文转换成十六进制编码

    需要注意的是,虽然本例中使用了GBK编码,但如果你的文本文件使用了其他编码(如UTF-8),则需要在`native2ascii`命令中指定正确的编码格式。例如,如果文件是UTF-8编码,应使用`-encoding utf-8`。 总之,将中文...

    GB/BIG5/UTF-8 文件编码批量转换工具

    由于其广泛支持和跨平台兼容性,UTF-8已经成为互联网上最常用的字符编码。 在处理不同编码格式的文件时,可能会遇到乱码问题。例如,一个GBK编码的文件如果用UTF-8方式打开,可能会出现无法识别的字符。此时,就...

    GBK与UTF8编码批量转码工具

    然而,由于UTF-8使用变长字节表示字符,所以与固定长度的GBK编码相比,相同内容的文件大小可能会更大。 批量转码工具的使用通常包括以下步骤: 1. **选择源目录**:首先,用户需要指定包含待转换文件的源目录,这些...

    js 编码转换 gb2312 和 utf8 互转的2种方法

    在JavaScript中,编码转换是处理不同字符编码格式之间转换的过程,比如从GBK(GB2312)到UTF-8,反之亦然。这在处理中文字符时尤其重要,因为不同的编码方式对汉字的支持和表示方式有所不同。以下是两种在JavaScript...

Global site tag (gtag.js) - Google Analytics