`
coolpep
  • 浏览: 78893 次
社区版块
存档分类
最新评论

javascript 中的utf-8 与 中文的互转

 
阅读更多

<SCRIPT LANGUAGE="JavaScript">
<!--
function EncodeUtf8(s1)
{
var s = escape(s1);
var sa = s.split("%");
var retV ="";
if(sa[0] != "")
{
retV = sa[0];
}
for(var i = 1; i < sa.length; i ++)
{
if(sa[i].substring(0,1) == "u")
{
retV += Hex2Utf8(Str2Hex(sa[i].substring(1,5)));

}
else retV += "%" + sa[i];
}

return retV;
}
function Str2Hex(s)
{
var c = "";
var n;
var ss = "0123456789ABCDEF";
var digS = "";
for(var i = 0; i < s.length; i ++)
{
c = s.charAt(i);
n = ss.indexOf(c);
digS += Dec2Dig(eval(n));

}
//return value;
return digS;
}
function Dec2Dig(n1)
{
var s = "";
var n2 = 0;
for(var i = 0; i < 4; i++)
{
n2 = Math.pow(2,3 - i);
if(n1 >= n2)
{
s += '1';
n1 = n1 - n2;
}
else
s += '0';

}
return s;

}
function Dig2Dec(s)
{
var retV = 0;
if(s.length == 4)
{
for(var i = 0; i < 4; i ++)
{
retV += eval(s.charAt(i)) * Math.pow(2, 3 - i);
}
return retV;
}
return -1;
}
function Hex2Utf8(s)
{
var retS = "";
var tempS = "";
var ss = "";
if(s.length == 16)
{
tempS = "1110" + s.substring(0, 4);
tempS += "10" + s.substring(4, 10);
tempS += "10" + s.substring(10,16);
var sss = "0123456789ABCDEF";
for(var i = 0; i < 3; i ++)
{
retS += "%";
ss = tempS.substring(i * 8, (eval(i)+1)*8);



retS += sss.charAt(Dig2Dec(ss.substring(0,4)));
retS += sss.charAt(Dig2Dec(ss.substring(4,8)));
}
return retS;
}
return "";
}

function revertUTF8(szInput)
{
var x,wch,wch1,wch2,uch="",szRet="";
for (x=0; x<szInput.length; x++)
{
if (szInput.charAt(x)=="%")
{
wch =parseInt(szInput.charAt(++x) + szInput.charAt(++x),16);
if (!wch) {break;}
if (!(wch & 0x80))
{
wch = wch;
}
else if (!(wch & 0x20))
{
x++;
wch1 = parseInt(szInput.charAt(++x) + szInput.charAt(++x),16);
wch = (wch & 0x1F)<< 6;
wch1 = wch1 & 0x3F;
wch = wch + wch1;
}
else
{
x++;
wch1 = parseInt(szInput.charAt(++x) + szInput.charAt(++x),16);
x++;
wch2 = parseInt(szInput.charAt(++x) + szInput.charAt(++x),16);
wch = (wch & 0x0F)<< 12;
wch1 = (wch1 & 0x3F)<< 6;
wch2 = (wch2 & 0x3F);
wch = wch + wch1 + wch2;
}
szRet += String.fromCharCode(wch);
}
else
{
szRet += szInput.charAt(x);
}
}
return(szRet);
}

document.write(EncodeUtf8("夺载基本原理"));
document.write(revertUTF8("%E5%A4%BA%E8%BD%BD%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86"));

//-->
</SCRIPT>

分享到:
评论

相关推荐

    js gb2312和utf-8互转

    根据提供的文件信息,本文将详细解释如何在JavaScript中实现GB2312编码与UTF-8编码之间的相互转换。此技术对于处理不同编码格式的文本数据尤为重要,尤其是在Web开发领域中,经常需要处理多种字符集的数据。 ### GB...

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

    1. **GBK到UTF-8的转换**:该工具能够将使用GBK编码的文本或文件(如HTML、CSS、JavaScript等网页文件)转换为UTF-8编码,以适应更多网络环境,确保非简体中文环境下网页的正常显示。 2. **UTF-8到GBK的转换**:...

    GB/BIG5/UTF-8文件编码批量转换程序

    描述中提到的“将 GB、BIG5、UTF-8 文件相互转换”,意味着该程序具备了双向转换功能,不仅可以将GB或BIG5编码的文件转换为UTF-8,还可以将UTF-8编码的文件转换成GB或BIG5。这对于需要在不同编码系统间进行数据迁移...

    utf82hex:将utf8文本转换为utf8十六进制字符串的工具

    utf82hex 用法 &gt; var utf82hex = require ( 'utf82hex' ) undefined &gt; utf82hex . encode ( "漢字" ) // This is represented as unicode ...查看“ UTF-8(十六进制)”部分,并将其与输出进行比较以了解其工作原理。

    UTF8GBK互转换工具

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

    js实现unicode码字符串与utf8字节数据互转详解

    本文主要探讨了如何在JavaScript中实现Unicode字符串与UTF-8字节数据之间的转换。首先,我们需要理解Unicode和UTF-8之间的关系。Unicode是一个字符集,包含世界上几乎所有的字符,而UTF-8是一种变长编码方式,根据...

    JS+小程序 汉字与gbk2312编码互转

    例:中 D6D0 国 B9FA http://www.mytju.com/classcode/tools/encode_gb2312.asp 开发小程序蓝牙时,发送中文,硬件蓝牙要求gbk2312转码,我费了九牛二虎之力,终于找到简单有效的方法

    JS简繁体互转

    中文字符在计算机中通常使用Unicode编码,包括GB2312、GBK、UTF-8等格式,其中UTF-8是最常用的一种。Unicode包含了简体和繁体中文的所有字符,使得转换成为可能。 转换算法通常有两种常见方式: 1. 字典法:通过...

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

    以下是两种在JavaScript中进行GB2312与UTF-8编码转换的方法。 **方法一:使用VBScript** 这段代码利用了VBScript的MidB函数来处理GBK编码的数据,并通过JavaScript的内置函数进行转换。具体步骤如下: 1. 将GBK...

    javascript下汉字和Unicode编码互转代码

    个是就是把汉字和Unicode编码互转的javascript代码,也是从网上找到了,也许有人用得着!!

    JS实现网页简体繁体互转换插件升级版,使用说明,示范页都具备

    2:UTF-8码的插入:切换繁体中文浏览&lt;/a&gt;&lt;script language="JavaScript" src="js125/big52gb.Js" type="text/javascript"&gt;   上方设置默认为打开简体显示,如果需打开默认繁体显示,请看如下操作 Std_StranJF.js...

    浅谈文字编码和Unicode

    UTF-8的优点在于其对ASCII字符的兼容性——ASCII字符在UTF-8中仅需一个字节表示,与ASCII编码完全一致,这使得UTF-8在互联网上成为最广泛接受的编码格式。 除了UTF-8,Unicode还有其他实现,如UTF-16和UTF-32。UTF-...

    整站文件简繁互换 c#源码

    在这个项目中,明确指出文件需要是UTF-8编码,这是因为UTF-8是一种广泛使用的Unicode编码,它可以表示所有Unicode字符,包括简体和繁体中文,且兼容性极佳。 其次,C#是一种面向对象的编程语言,由Microsoft开发,...

    js汉字转拼音及汉字转拼音首字母

    4. **编码转换**:由于汉字在不同编码下表示形式不同,如GBK和UTF-8,转换时需要注意编码的兼容性。 5. **性能优化**:如果处理大量汉字,需要考虑性能问题,如使用哈希查找优化查找速度。 6. **测试**:确保各种...

    Notepad++(UNICODE)简体中文

    在Notepad++中,"UNICODE"指的是UTF-16编码,这是一种广泛使用的Unicode实现方式,能够处理世界上几乎所有的文字系统。通过使用UNICODE,Notepad++能够正确地显示和保存包含中文字符的文件,这对于中文开发者来说...

    Dart_官网文档_docs-gen-api

    8. **dart:convert**:提供了一组转换器,用于处理JSON、UTF-8、Base64等编码格式的转换。 9. **Flutter框架**:Dart也是Flutter框架的主要语言,Flutter是一个用于构建高性能、高保真度的移动、Web和桌面应用程序...

    《简体和繁体》.zip

    1. **字符编码基础**:简体和繁体转换涉及到字符编码,如GBK、UTF-8等,理解各种编码格式的区别和互转方法是必要的。 2. **JavaScript的字符串处理**:在JavaScript中,可以使用`String.prototype.replace()`方法...

    JS实现简体和繁体互相转换

    Std_StranJF.js文件只支持GB2312码,big52gb.js支持utf-8。  一、将繁简互换JS文件上传至空间:  如果您调用的是&lt;script language="javascript" src="/js/Std_StranJF.Js"&gt;,则将繁简互换JS文件(Std_StranJF.Js)...

    UNICODE系列讲座(CHM).rar

    在《UNICODE系列讲座》的CHM文件中,读者可以逐章浏览,学习Unicode的各个方面,包括Unicode的历史、编码方案(如UTF-8、UTF-16)、Unicode与ASCII的转换、Unicode在操作系统和编程语言中的实现等。 书中可能还会...

    NATIVE/ASCII编码在线互转 v1.0

    Unicode的实现方式有很多,如UTF-8、UTF-16等,它们在存储和传输字符时采用不同的位数。 NATIVE/ASCII编码在线互转 v1.0工具的核心功能就是将含有本地字符的Unicode编码文本转换为ASCII编码,或者反过来。在处理...

Global site tag (gtag.js) - Google Analytics