`
cocofuyi
  • 浏览: 5964 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论

解决js url传递中文乱码

    博客分类:
  • js
js 
阅读更多
传递url中汉字用encodeURIComponent()转换文utf-8
在传递页面中用Utf8ToUnicode ()再转换为汉字
Utf8ToUnicode :function (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;
  }
分享到:
评论

相关推荐

    extjs 前后台交互参数出现中文乱码问题的解决方法

    在使用myeclipse过程中,我使用ajax同步请求传递参数到后台却出现中文乱码,这是我解决问题的代码,希望对您有所帮助

    JS解决url传值出现中文乱码的另类办法

    为什么用表单的方式就可以传递中文,而URL的方式就不行了呢?非得用URL传值的方式才能解决问题吗?这里我想到了动态表单,何不用它来解决呢

    javascript通过url向jsp页面传递中文参数导致乱码解决方案

    javascript通过url向jsp页面传递中文参数乱码,一直都是从事jsp开发者比较烦心的是,于是本文介绍了一些解决方法,感兴趣的朋友可以了解下

    asp.net URL 显示乱码 解决方法

    比如你传入汉字,或者传入”§”等其他编码格式的字符串系统解析后的url为乱码。经过在网上的查找觉得一下两种方式比较好: 1.如果url在后台解析的话采用HttpUtility.UrlEncode(url,System.Text.Encoding....

    url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

    解决url传递中文乱码问题,解决后台接收到的汉字是乱码的

    escape函数解决js中ajax传递中文出现乱码问题

    本文实例讲述了escape函数解决js中ajax传递中文出现乱码问题,分享给大家供大家参考。具体方法如下: 一、问题描述: 本来网页特效中的escape()是将中文按iso-8859-1字符集进行url编码的,那样通过 request....

    在JavaScript中通过URL传递汉字的方法

    利用JavaScript通过URL方式向后台代码传值是一种经常用到的手段,但在传递汉字时经常会出现字符不全或变成乱码的问题,其原因是由于客户端IE浏览器的编码方式为GB2312(简体中文版WINDOWS的默认设置),而后台的C#...

    解决java页面URL地址传输参数乱码的方法

    主要介绍了解决java页面URL地址传输参数乱码的方法,URL地址参数乱码问题,算是老话重谈了吧!需要的朋友可以参考下

    js实现GBK编码,避免默认utf-8编码

    前端页面通过ajax发送请求,参数都是默认使用utf-8编码格式对参数进行url编码,这样的后果就是,当后台页面如果使用gbk编码的话,会出现乱码的情况,然后网上找到一个大神写的gbk.js. 但是里面没有做出详细介绍,这里...

    js实现GBK编码

    用于js中实现GBK编码。适合使用js进行页面参数传递时,给GBK编码页面传递参数,解决乱码。

    python中urllib.unquote乱码的原因与解决方法

    unquote方法对应javascript中的urldecode方法,它对url进行解码,把类似”%xx”的字符替换成单个字符,例如:“法国红酒”解码后会转换成“法国红酒”,但是使用过程中,如果姿势不对,最终转换出来的字符会是乱码...

    解决了Ajax、MySQL 和 Zend Framework 的乱码问题

    问题: 在 Google Map 上用 Ajax 以 get 方式向服务器传递数据时,服务器端显示为 url 乱码, Zend Framework 向 MySQL 存储数据为乱码,但是提取出来又是正常中文字体, MySQL 中输入中文,显示在 PHP 网页上为乱码...

    jsp页面传参乱码的解决方法

    jsp页面传参乱码的解决方法 jsp页面js: encodeURIComponent要使用两次encodeURIComponent... 您可能感兴趣的文章:javascript通过url向jsp页面传递中文参数导致乱码解决方案jsp地址栏传中文显示乱码解决方法分享

    js读取本地文件的实例

    如何用在浏览器端预览本地文件? 今天的主题是使用浏览器预览本地文件。 由于浏览器安全策略的限制,javascript...然后 使用获得File 对象通过URL.createObjectURL(file)转换为文件url, 就可以传递给类似y于img,video

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

    在很多时候,我们直接在url中传递中文参数时,读到的中文都是乱码,那么我们应该怎么将这些参数转换呢? 下面我们来介绍一下方法 1、我们新建一个 UrlEncode.js 然后将下面的代码拷贝进去 代码如下: //JS版的Server....

    PHP入门到精通

    8.7对URL传递的参数进行编码解码 8.8PHP与Web表单的综合应用 PHP与JavaScript交互(教学录像:1小时11分36秒) 9.1了解JavaScript 9.2JavaScript语言基础 9.3自定义函数 9.4JavaScript流程控制语句 9.5JavaScript...

    PHP入门到精通02

    8.7对URL传递的参数进行编码解码 8.8PHP与Web表单的综合应用 PHP与JavaScript交互(教学录像:1小时11分36秒) 9.1了解JavaScript 9.2JavaScript语言基础 9.3自定义函数 9.4JavaScript流程控制语句 9.5JavaScript...

    PHP开发实战1200例源码

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

Global site tag (gtag.js) - Google Analytics