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. 使用virtualenv搭建python虚拟开发环境

    在使用python做开发时,如果多人需要在同一台机器上工作,或者机器环境经常变化时, 添加或删除一些python包很可能会影响到你自己的开发环境. 因此,通过virtualenv工具可以创建一个完全属 ...

  2. 开创学习的四核时代-iTOP-4412开发板开源硬件平台

    iTOP-4412开发板如今比較热门的开发板.笔者最近入了一套. 也推荐给初学ARM的朋友学习,4412开发板搭载三星Exynos四核处理器,配备1GB内存,4GB固态硬盘EMMC存储,兼具高速读取与 ...

  3. 为什么我们须要复杂的password

    前两天我打开邮箱一看.收到公司1331一封要求改动邮箱password的邮件. 为什么我们须要一个复杂的password呢?尽管我一直以来设置的password都非常复杂.可是公司这次要求改动pass ...

  4. iOS 平台上常见的安装包有三种,deb、ipa 和 pxl

    前言:目前 iOS 平台上常见的安装包有三种,deb.ipa 和 pxl. 其中 deb 格式是 Debian 系统(包含 Debian 和 Ubuntu )专属安装包格式,配合 APT 软件管理系统 ...

  5. Redis学习手冊(事务)

    一.概述:       和众多其他数据库一样,Redis作为NoSQL数据库也相同提供了事务机制. 在Redis中,MULTI/EXEC/DISCARD/WATCH这四个命令是我们实现事务的基石. 相 ...

  6. java.lang.IllegalArgumentException: The observer is null.终于解决方式

    java.lang.IllegalArgumentException: The observer is null.终于解决方式 在使用数据适配的时候的问题: java.lang.IllegalArgu ...

  7. vim 基础学习之查找

    普通模式下 /->正向查找 n-向下查找 N-向上查找 ?->反向查找 N-向下查找 n-向上查找 <C-r><C-w> <C-r>-引用,例如引用寄存 ...

  8. How to anti-Obfuscated code

    Author:jin can zhu from China Source:http://blog.csdn.net/clever101 Now many software makers have us ...

  9. 转 SQL集合函数中利用case when then 技巧

    SQL集合函数中利用case when then 技巧 我们都知道SQL中适用case when then来转化数据库中的信息 比如  select (case sex when 0 then '男' ...

  10. seq---生成随机数

    seq命令用于产生从某个数到另外一个数之间的所有整数. 语法 seq [选项]... 尾数 seq [选项]... 首数 尾数 seq [选项]... 首数 增量 尾数 选项 -f, --format ...