utf-8编码转换成gb2312

[code]<script>  

function  chinesefromutf8url(strutf8)    

{  

           var  bstr  =  "";  

           var  noffset  =  0; 

 //  processing  point  on  strutf8               

           if(  strutf8  ==  ""  )  

               return  "";                 

           strutf8  =  strutf8.tolowercase();  

           noffset  =  strutf8.indexof("%e");  

           if(  noffset  ==  -1  )  

               return  strutf8;

while(  noffset  !=  -1  )  

           {  

               bstr  +=  strutf8.substr(0,  noffset);  

               strutf8  =  strutf8.substr(noffset,  strutf8.length  -  noffset);  

               if(  strutf8  ==  ""    ¦  ¦  strutf8.length  <  9  )      //  bad  string  

                   return  bstr;

bstr  +=  utf8codetochinesechar(strutf8.substr(0,  9));  

               strutf8  =  strutf8.substr(9,  strutf8.length  -  9);  

               noffset  =  strutf8.indexof("%e");  

           }

return  bstr  +  strutf8;  

}

function  unicodefromutf8(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;  

}

function  utf8codetochinesechar(strutf8)  

{  

   var  icode,  icode1,  icode2;  

   icode  =  parseint("0x"  +  strutf8.substr(1,  2));  

   icode1  =  parseint("0x"  +  strutf8.substr(4,  2));  

   icode2  =  parseint("0x"  +  strutf8.substr(7,  2));

return  string.fromcharcode(((icode  &  0x0f)  <<  12)    ¦    

                                                           ((icode1  &  0x3f)  <<    6)    ¦  

                                                           (icode2  &  0x3f));  

}  

alert(chinesefromutf8url("%e6%b5%8b%e8%af%95"))  

</script>[code]

时间: 2024-11-08 22:40:13

utf-8编码转换成gb2312的相关文章

可以把编码转换成 gb2312编码lib.UTF8toGB2312.js_lib_js

//Author: Unknow //把编码转换成 gb2312编码  function UrlEncode(str)  {  var i, c, ret="", strSpecial="!\"#$%&'()*+,/:;<=>?@[\]^`{|}~%";  for(i = 0; i < str.length; i++)  {  //alert(str.charCodeAt(i));  c = str.charAt(i);  if(

用Javascript实现UTF8编码转换成gb2312编码_javascript技巧

复制代码 代码如下: //把编码转换成 gb2312编码  function UrlEncode(str)  {  var i, c, ret="", strSpecial="!\"#$%&'()*+,/:;<=>?@[\]^`{|}~%";  for(i = 0; i < str.length; i++)  {  //alert(str.charCodeAt(i));  c = str.charAt(i);  if(c==&qu

C#将UTF8编码转换成GB2312后出现很多乱码,怎样解决

问题描述 html="这里是网页源代码";Byte[]gb2=System.Text.Encoding.GetEncoding("GB2312").GetBytes(html);this.Label2.Text="新闻内容是:"+System.Text.Encoding.UTF8.GetString(gb2); 效果如下:2010-1-810:30:00中国旅游??/a>字号:[??/a>??/a>??/a>]......

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

在很多时候,我们直接在url中传递中文参数时,读到的中文都是乱码,那么我们应该怎么将这些参数转换呢? 下面我们来介绍一下方法 1.我们新建一个 UrlEncode.js 然后将下面的代码拷贝进去 复制代码 代码如下: //JS版的Server.UrlEncode编码函数 String.prototype.UrlEncodeGB2312 = function () { var str = this; str = str.replace(/./g, function (sHex) { window.

UTF-8转换成GB2312的全处理

主题:将UTF-8编码的字符串转化成GB2312的编码,没有对应编码的字符串转化为DEC; 的格式.如 회=>회 语言:PHP,Javascript 内容:浏览器用Javascript中encodeURI函数将字符串(包含非GB2312中字符)编码,GET请求到服务器,页面编码均为GB2312,服务器PHP脚本将请求数据转换成GB2312表示. 基础: 1. 单独使用iconv函数只能转换GB2312字符,外文字符无法转换 2. 没有现成的函数可以用 3. bindec()函数:将二进制格式的&qu

ios-OC中怎样将UTF8编码转换成中文

问题描述 OC中怎样将UTF8编码转换成中文 如题:有一个Person类,里面重写了description方法,实现返回姓名,年龄等信息.这样我可以直接通过NSLog(@""%@""per); 来输出对象信息.但是如果我把对象存入数组中,然后输出数组:NSLog(@""%@"" array);这样输出的结果都是UTF8编码.如果对象per内部的信息是因为和数字的话结果不受影响,如果是中文的话输出的就是UTF8.这是为什么呢?如

GB2312转换成UTF-8与utf_8转换成GB2312

 本文转载:http://www.cnblogs.com/jonhson/archive/2010/08/10/1796536.html /// <summary> /// utf_8转换成GB2312 /// </summary> /// <param name="utfInfo"></param> /// <returns></returns> private string ToGB2312(string ut

UCS2编码转换成GBK

问题描述 最近做短信网关的程序,发现短信发送的时候设置sms_Fmt=15,手机可以正常收到中文短信内容,可是当手机回复中文时,短信网关确收到内容乱码的情况,我查看了一下sms_Fmt字段,该字段是为8即UCS2编码,现在想把它转换成中文,我曾试过用Stringns=newString(ct.getBytes("UnicodeBigUnmarked"),"GBK");方法转换,可是还不行,请高手进来指教下,谢谢. 解决方案 解决方案二:这种方法都不行,我也想不出什么

php字符编码转换之gb2312转为utf8

string iconv ( string in_charset, string out_charset, string str ) 注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断. Returns the converted string or FALSE on failur