ホームページ >バックエンド開発 >PHPチュートリアル >PHP による Unicode および Escape 暗号化文字列の復号化_PHP チュートリアル

PHP による Unicode および Escape 暗号化文字列の復号化_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:53:561130ブラウズ

PHP は Unicode および Escape で暗号化された文字列を復号します

中国語は json でサポートされていません。これを使用して中国語データを送信すると、データの損失や文字化けが発生します。これは、js を使用する必要があるためです。データ分析. js に unescape 関数があることを考えると、php にデータをエンコードし、クライアントでそれをデコードするために unescape 関数を使用すると、はるかに便利になります。

この記事では、PHP 復号化 Unicode および Escape 暗号化文字列関数を共有します

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

関数 uni_decode($s) {

preg_match_all('/&#([0-9]{2,5});/', $s, $html_uni);

preg_match_all('/[\%]u([0-9a-f]{4})/ie', $s, $js_uni);

$source = array_merge($html_uni[0], $js_uni[0]);

$js = 配列();

for($i=0;$i

$js[] = hexdec($js_uni[1][$i]);

}

$utf8 = array_merge($html_uni[1], $js);

$コード = $s;

for($j=0;$j

$code = str_replace($source[$j], unicode2utf8($utf8[$j]), $code);

}

return $code;//$s;//preg_replace('/\u([0-9a-f]{4})/ie', "chr(hexdec('\1'))", $s) ;

}

関数 unicode2utf8($c) {

$str="";

if ($c <0x80) {

$str.=chr($c);

} else if ($c <0x800) {

$str.=chr(0xc0 | $c>>6);

$str.=chr(0x80 | $c & 0x3f);

} else if ($c

$str.=chr(0xe0 | $c>>12);

$str.=chr(0x80 | $c>>6 & 0x3f);

$str.=chr(0x80 | $c & 0x3f);

} else if ($c

$str.=chr(0xf0 | $c>>18);

$str.=chr(0x80 | $c>>12 & 0x3f);

$str.=chr(0x80 | $c>>6 & 0x3f);

$str.=chr(0x80 | $c & 0x3f);

}

$str;を返す

}

$str='%u5927%u5BB6%u597D%uFF0CI 私は孤独な魂です!
u8FD9u662Fu6D4Bu8BD5u6587u672CuFF01';

echo uni_decode($str); // 皆さんこんにちは、私は孤独な魂です!これはテストテキストです!

インターネットで検索すると、phpに実装されたエスケープ関数がたくさんありますが、それらは似ています

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

関数phpescape($str){

preg_match_all("/[x80-xff].|[x01-x7f]+/",$str,$newstr);

$ar = $newsstr[0];

foreach($ar as $k=>$v){

if(ord($ar[$k])>=127){

$tmpString=bin2hex(iconv("GBK","ucs-2",$v));

if (!eregi("WIN",PHP_OS)){

$tmpString = substr($tmpString,2,2).substr($tmpString,0,2);

}

$reString.="%u".$tmpString;

} 他 {

$reString.= rawurlencode($v);

}

}

$reString を返す;

}

以上がこの記事の全内容ですが、皆さんに気に入っていただければ幸いです。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1000065.html技術記事 PHP は Unicode を復号化し、エスケープで暗号化された文字列は、JSON 内の中国語をサポートしません。これを使用して中国語データを送信すると、データが失われるか文字化けします。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。