fromCharCode vs chr

echo off

set "fn=%*"

set php=d:/www/php5/php.exe

cls

echo.

%php% %fn%

pause>null

====================

JS 默认编码是 UTF-16 ,PHP 中对数据的处理编码是 UTF-8 ,对 ASCII 无所谓,但对汉字就影响大了,所以必须做转码

<?php

$encKey="12";

$str="1234abcASDF/?廣告服務    风《》<>您好";

echo 'PHP:'.$str."\r\n<br>";

$str=utf82Unicode($str);

$ex=encrypt_string($str);

function encrypt_string($input)

{

    global $encKey;

    $line = "";

    for($i = 0; $i < strlen($input); $i++) {

        $line .= chr(ord($input[$i]) + $encKey);//ord()返回字符的 ASCII 值。十进制

    }                                           //chr()从指定的 ASCII 值返回字符。

    return $line;

}

function deccrypt_string($input)

{

    global $encKey;

    $line = "";

    for($i = 0; $i < strlen($input); $i++){

        $line .= chr(ord($input[$i]) - $encKey);

    }

    return $line;

}

function Unicode2Utf8($str){

preg_match_all("/(\d{2,5})/", $str,$a);

$a = $a[0];

$utf = '';

foreach ($a as $dec){

if ($dec < 128) {

$utf .= chr($dec);

} else if ($dec < 2048) {

$utf .= chr(192 + (($dec - ($dec % 64)) / 64));

$utf .= chr(128 + ($dec % 64));

} else {

$utf .= chr(224 + (($dec - ($dec % 4096)) / 4096));

$utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64));

$utf .= chr(128 + ($dec % 64));

}

}

return $utf;

}

function utf82Unicode($str=""){

$unicode = array();

$values = array();

$lookingFor = 1;

for ($i = 0; $i < strlen($str); $i++ ) {

$thisValue = ord($str[$i]);

if ($thisValue < 128) {

$unicode[] = $thisValue;

} else {

if ( count( $values ) == 0 ) {

$lookingFor = ( $thisValue < 224 ) ? 2 : 3;

}

$values[] = $thisValue;

if ( count( $values ) == $lookingFor ) {

$number = ( $lookingFor == 3 ) ?

( ( $values[0] % 16 ) * 4096 ) + ( ( $values[1] % 64 ) * 64 ) + ( $values[2] % 64 ):

( ( $values[0] % 32 ) * 64 ) + ( $values[1] % 64 );

$unicode[] = $number;

$values = array();

$lookingFor = 1;

}

}

}

$return = '';

foreach($unicode as $val){

$return .= '&#'.$val.';';

}

return $return;

}

?>

JS:

<script>

var e="<? echo $ex; ?>";

var s= decrypt_string(e);

document.write(s);

function decrypt_string(estr){

var key = 12;

var str="";

var n = estr.length;

var i;

for(i=0; i<n; i++) {

dstr =estr.charCodeAt(i) - key;

str+=String.fromCharCode(dstr);

}

return str;

}

</script>

fromCharCode vs chr的更多相关文章

  1. 常用ASCII CHR碼對照

    因為開發需求,把對照表留下來一下. Chr(0) Null Chr(29) 分组符 Chr(38) & Chr(48) 0 Chr(8) 退格 Chr(30) 記錄分離符號 Chr(39) ‘ ...

  2. Oracle中的CHR()函数与ASCII()函数

    工作中经常会处理一些因特殊字符而导致的错误,如上周我就遇到了因为换行符和回车符导致的数据上报的错误,这种错误比较难以发现,通常是由于用户的输入习惯导致的,有可能数据极少,就那么几行错误从而导致整个数据 ...

  3. 类型转换bin()、chr()、ord() 、int()、float()、str()、repr()、bytes()、tuple(s )、 list(s )   、unichr(x ) 、 ord(x )  、 hex(x )  、          type()数据类型查询

    1.bin() 将整数x转换为二进制字符串,如果x不为Python中int类型,x必须包含方法__index__()并且返回值为integer: 参数x:整数或者包含__index__()方法切返回值 ...

  4. javascript中String的fromCharCode()方法

    前几天遇到一个bug,后端的模板引擎在输出形如: <div title="111 aaa">内容</div> 这样的内容时,无法输出' '空格,所以只能用' ...

  5. Python chr() ord() unichr()

    chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符. unichr()跟它一样,只不过返回的是Unicode字符,这个从Python 2.0才加入的un ...

  6. php中的字符串常用函数(四) ord() 获得字符的ascii码 chr()获取ascii码对应的字符

    ord('a');//=>97 返回小写a 的ascii码值97 chr(97);//=>a 返回ascii码表上的97对应的 小写a

  7. python 中chr(),unichr(),ord()的用法

    chr()根据整数返回对应的字符,也就是讲ascii转换为字符 unichr()将整数返回成unicode字符 ord()将字符转换成ascii码

  8. python chr() unichr() ord()

    了解一下python chr(),unichr(),ord()函数的用法. 参考链接: http://crazier9527.iteye.com/blog/411001 chr() 输入参数(取值范围 ...

  9. python_way,day4 内置函数(callable,chr,随机验证码,ord),装饰器

    python_way,day4 1.内置函数 - 下 制作一个随机验证码 2.装饰器 1.内置函数 - 下 callable() #对象能否被调用 chr() #10进制数字对应的ascii码表中的内 ...

随机推荐

  1. cf 865 B. Ordering Pizza

    B. Ordering Pizza It's another Start[c]up finals, and that means there is pizza to order for the ons ...

  2. Scrapy框架使用代理

    使用代理抓取https://www.baidu.com/s?wd=ip # -*- coding: utf-8 -*- ''' 一.在settings.py中开启中间件 DOWNLOADER_MIDD ...

  3. b模式处理文件

    1.读 f=open('cheng','rb') date=f.read() print(date.decode()) 2.写 f=open('cheng','ab') f.write('chengz ...

  4. Webhook

    Webhook就是用户通过自定义回调函数的方式来改变Web应用的一种行为,这些回调函数可以由不是该Web应用官方的第三方用户或者开发人员来维护,修改.通过Webhook,你可以自定义一些行为通知到指定 ...

  5. 几种类型的db,以及最新的db排名,看一下

    5月数据库排名: http://geek.csdn.net/news/detail/196118 另外这篇文章里面提到了一些内嵌式数据库: http://blog.csdn.net/leagoal/a ...

  6. sigprocmask, sigpending, sigsuspend的用法

    sigset_t set sigemptyset(&set) :清空阻塞信号集合变量 sigfillset(&set) :添加所有的信号到阻塞集合变量里 sigaddset(& ...

  7. 谈谈 Struts2 的拦截器

    套话 相信非常多人都用过 Struts2 了,当然,对 Struts2 的原理也都比較了解.之前在一个项目中就已经用到了,当初的理解也不过局限在应用的层面上,对于更深层次的原理.机制,了解的并非非常多 ...

  8. JSP从选择到放弃

    JSP为什么会出现?出现的原因? ①因为在开发web网站时候,返现servlet做界面比较麻烦,于是出现了jsp. 运行在服务端(Java server pages)基于servlet,对servle ...

  9. Springboot优化

    https://www.cnblogs.com/chen110xi/p/6198481.html

  10. Onvif开发之基础介绍篇

    什么是Onvif协议,谁开启了Onvif时代? ONVIF:原意为 开放型网络视频接口论坛,即 Open Network Video Interface Forum ,是安讯士.博世.索尼等三家公司在 ...