`
igogogo9
  • 浏览: 247084 次
  • 性别: 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和UTF-16编码的转换接口

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

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

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

    javascript转码GBK(u2gb.js)

    使用javascprit将字符转为GBK编码格式

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

    方法一: 代码如下:function gb2utf8(data){ var glbEncode = []; gb2utf8_data = data; execScript(“gb2utf8_data = MidB(gb2utf8_data, 1)”, “VBScript”); var t=escape(gb2utf8_data).replace(/%u/g,””)....

    将字符串转换成gb2312或者utf-8编码的参数(js版)

    直接在url中传递中文参数时,读到的中文都是乱码,那么我们应该怎么将这些参数转换呢,接下来与大家分享下将字符串转换成utf-8或者gb2312编码的参数的技巧

    GB转UTF8字符工具

    用来对代码文件格式进行转换,支持GB2312、GBK与UTF-8编码进行互换功能,资源来源于网络,请使用者遵守相关法律。

    JavaScript字符集编码与解码详谈

    一、字符集 1)字符与字节(Character) 字符是各种文字和符号的总称,包括乱码;一个字符对应1~n个字节,...字符集大多对应一种编码方式(例如GBK对应GBK编码),但Unicode编码有多种,包括UTF-8、UTF-16、UTF-32和UT

    使用Node.js处理前端代码文件的编码问题

    在读取不同编码的文本文件时,需要将文件内容转换为 JS 使用的 UTF8 编码字符串后才能正常处理。 BOM 的移除 BOM 用于标记一个文本文件使用 Unicode 编码,其本身是一个 Unicode 字符(”\uFEFF”),位于文本文件...

    MadEdit编辑器

    包括Unicode(UTF-8、UTF-16/32)、Big5、GBK以及S-JIS 支持Unicode CJK 扩展B区(Ext-B) 可进行中文繁、简体的转换 若用户输入的字符不为当前编码支持,该字符会被转换成诸如U+XXXX的Unicode格式可用正则表达式进行...

    day019-io笔记和代码.rar

    OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。 * 2. OutputStreamWriter(OutputStream out, String charsetName) 创建一个使用指定字符集的...

    FeHelper超好用谷歌插件

    网页编码设置(UTF-8、GBK、日文、韩文等) 我的便签笔记(便签笔记,支持导出) 人像背景移除(将人物照片中的背景移除:抠图工具) 根据提示,打开 chrome://extensions 拖拽crx文件到该页面,完成安装

    WEB前端助手(FeHelper)_v2019.09.0320.crx

    JSON自动美化(页面自动检测并格式化) JSON手动美化(粘贴文本、手动格式化)...网页编码设置(UTF-8、GBK、日文、韩文等) 我的便签笔记(便签笔记,支持导出) 人像背景移除(将人物照片中的背景移除:抠图工具)

    有关json_decode乱码及NULL的问题

    具体内容请看下文吧。 写接口的同学应该会经常遇到数据格式的转换,这时候必不可少的两个函数就是json_encode()和json_decode()。 这两个函数使用的时候有很...用iconv函数将写入数据的gbk编码格式转换为要输出的utf-8

    php多层数组与对象的转换实例代码

    通过json_decode(json_encode($object)可以将对象一次性转换为数组,但是object中遇到非utf-8编码的非ascii字符则会出现问题,比如gbk的中文,何况json_encode和decode的性能也值得疑虑。下面上代码:复制代码 代码...

    notebook:我的技术笔记本〜

    zjuchenyuan的笔记本 我关于技术的笔记本,用于查找和共享 查看内容请单击Topic标题(如 )进入页面后使用右侧目录定位 评论请使用: 安装点 设置pip源 请求使用多IP请求 ...Python3.5打开打开文件默认使用utf-8 使

    sublime_text_3安装包+汉化包+注册机

    将文件编码从GBK转换成UTF8,快捷键Ctrl+Shift+C zenCoding zenCoding是一种快速的html、css编写方式。默认用tab键. 已经更名为Emmet。 JS Format 一个JS代码格式化插件。默认ctrl+alt+f BracketHighlighter 括弧...

    优秀代码编辑器 Sublime Text 3.2.2 Build 3211 + x64 中文注册版.zip

    将文件编码从GBK转换成UTF8,快捷键Ctrl+Shift+C zenCoding zenCoding是一种快速的html、css编写方式。默认用tab键. 已经更名为Emmet。 JS Format 一个JS代码格式化插件。默认ctrl+alt+f Sublime Text 3 简体中文...

    php网络开发完全手册

    3.2.3 转换成字符串型 55 3.2.4 转换成布尔型 55 3.2.5 转换成数组 56 3.2.6 转换成对象 56 3.2.7 使用函数进行数据类型的强制 3.2.7 转换 57 3.3 小结 57 第4章 函数处理与数据引用 58 4.1 函数的定义与使用 58 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

Global site tag (gtag.js) - Google Analytics