javascript unescape() escape() 字符编码解码函数

escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

语法
escape(string)参数 描述
string 必需。要被转义或编码的字符串。

返回值
已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列

function php教程escape($str)
{
         $sublen=strlen($str);
         $retrunstring="";
         for ($i=0;$i<$sublen;$i++)
         {
                  if(ord($str[$i])>=127)
                  {
                           $tmps教程tring=bin2hex(iconv("gb2312","ucs-2",substr($str,$i,2)));
                           //$tmpstring=substr($tmpstring,2,2).substr($tmpstring,0,2);window下可能要打开此项
                           $retrunstring.="%u".$tmpstring;
                           $i++;
                  } else {
                           $retrunstring.="%".dechex(ord($str[$i]));
                  }
         }
         return $retrunstring;

unescape() 函数可对通过 escape() 编码的字符串进行解码。

语法
unescape(string)参数 描述
string 必需。要解码或反转义的字符串。

返回值
string 被解码后的一个副本。

说明
该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 unicode 字符 u00xx 和 uxxxx 替换这样的字符序列进行解码。

php处理

function unescape($str) {
         $str = rawurldecode($str);
         preg_match_all("/%u.{4}|&#x.{4};|&#d+;|.+/u",$str,$r);
         $ar = $r[0];
         foreach($ar as $k=>$v) {
                  if(substr($v,0,2) == "%u")
                           $ar[$k] = iconv("ucs-2","gbk",pack("h4",substr($v,-4)));
                  elseif(substr($v,0,3) == "&#x")
                           $ar[$k] = iconv("ucs-2","gbk",pack("h4",substr($v,3,-1)));
                  elseif(substr($v,0,2) == "&#") {
                           $ar[$k] = iconv("ucs-2","gbk",pack("n",substr($v,2,-1)));
                  }
         }
         return join("",$ar);
}

时间: 2024-09-22 00:40:55

javascript unescape() escape() 字符编码解码函数的相关文章

JavaScript的内部字符编码是UCS-2还是UTF-16

对于 JavaScript 使用的是 UCS-2 还是 UTF-16 这个问题,我找了很久,没有发现一个权威的回答,我决定自己研究一下它.这个回答来自于你对 JavaScript 引擎或者对 JavaScript 语言的理解. 一.著名的 BMP(Basic Multilingual Plane) Unicode 标识符通过一个明确的名字和一个整数来作为它的码位(code point).比如,"" 字符的码位可以用"版权标志"和U+00A9(0xA9,也可以写作十进

php中的字符编码转换函数用法示例_php技巧

本文实例讲述了php中的字符编码转换函数的用法,分享给大家供大家参考.具体实现方法如下: 一般来说,在网页程序中,尤其是涉及到数据库的读出过程中,往往最恼火的就是字符编码的问题,php4.0.6以上的版本提供了mb_convert_encoding 可以方便的转换编码. 具体如下: 复制代码 代码如下: <?php /* Convert internal character encoding to SJIS */ $str = mb_convert_encoding($str, "SJIS

Javascript下的urlencode编码解码方法附decodeURIComponent_javascript技巧

关于在ASP(Server.UrlEncode).PHP(urlencode())函数编码结果,或是经过asp.php等动态语言直接写入COOKIES的中文字符,用JS读取的时候,都会碰到一个编码的问题,那就是最终字符串被urlencode编码了,而又时有需要从JS在客户端去读取这些数据. 而本文,就大概说说如何在js中通过系统自带的函数去解决这个问题. 而相信碰到过此问题的朋友应该都有所了解,目前网络上流行一些js下的自定义函数去解决这个问题,如说vbscript(URLDecode()).j

js url编码解码函数 decodeURIComponent encodeURIComponent

decodeuricomponent() 函数可对 encodeuricomponent() 函数编码的 uri 进行解码. decodeuricomponent(uristring)参数 描述 uristring 必需.一个字符串,含有编码 uri 组件或其他要解码的文本. var test1="http://www.111cn.net/my first/" document.write(encodeuricomponent(test1)+ "<br />&qu

浅谈JavaScript中的字符编码转换问题_基础知识

要获得字符的Unicode编码,可以使用string.charCodeAt(index)方法,其定义为:    strObj.charCodeAt(index)       index为指定字符在strObj对象中的位置(基于0的索引),返回值为0与65535之间的16位整数.例如: var strObj = "ABCDEFG"; var code = strObj.charCodeAt(2); // Unicode value of character 'C' is 67      

Java字符编码解码的实现详解_java

 字符集基础: Character set(字符集)          字符的集合,也就是,带有特殊语义的符号.字母"A"是一个字符."%"也是一个字符.没有内在数字价值,与 ASC II ,Unicode,甚至是电脑也没有任何的直接联系.在电脑产生前的很长一段时间内,符号就已经存在了. Coded character set(编码字符集)          一个数值赋给一个字符的集合.把代码赋值给字符,这样它们就可以用特定的字符编码集表达数字的结果.其他的编码字符

JavaScript中各种编码解码函数的区别和注意事项_javascript技巧

大家在使用JS提交数据时,尤其是中文的时候,经常会需要将要提交的字符串进行URL编码.在JS中对字符串进行URL编码有好几种方 法,encodeURI,encodeURIComponent,还有escape.在我看到的很多代码中escape这个函数用的最多,不过这个函数却 是不推荐使用的.下面我们来分别看看这几个函数: encodeURI:对指定的字符串进行URL编码,不包括 : # / \ = & 这些URL中的关键字符. encodeURIComponent:对字符串中的字符进行编码,包括U

javascript 判断中文字符长度的函数代码_javascript技巧

JS的字符串都是string对象,可以用string对象的length属性可以获取其长度,但是无论是中文.全角符号以及英文最小长度单位都是1,这与php的strlen()并不相同. 复制代码 代码如下: function strlen(str) { var s = 0; for(var i = 0; i < str.length; i++) { if(str.charAt(i).match(/[u0391-uFFE5]/)) { s += 2; } else { s++; } } return

php URL编码解码函数代码_php基础

复制代码 代码如下: <?php $url = "http://www.jb51.net"; echo urlencode($url); //输出编码后的字符串 ?> 复制代码 代码如下: <?php $url = "http://www.jb51.net"; $newurl = urlencode($url); //首先对$url进行编码 echo urldecode($newurl); //输出解码后的字符串 ?>