ホームページ  >  記事  >  バックエンド開発  >  ASCIIコードの漢字についての質問です。オンラインで見たコードを解決するにはどうすればよいですか?

ASCIIコードの漢字についての質問です。オンラインで見たコードを解決するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-13 13:53:34878ブラウズ

ASCIIコードの漢字についての質問です。オンラインで見たコード

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php
/**
*
* ASCII 转 十六进制 以及 十六进制 转 ASCII
* 非盈利组织或个人请放心转载,商业用途请征得作者同意
*
*/
//ASCII 转 十六进制
function asc2hex($str) {
return '\x'.substr(chunk_split(bin2hex($str), 2, '\x'),0,-2);
}
//十六进制 转 ASCII
function hex2asc($str) {
$str = join('',explode('\x',$str));
$len = strlen($str);
for ($i=0;$i<$len;$i+=2) $data.=chr(hexdec(substr($str,$i,2)));
return $data;
}
$asc = "哈哈";
$hex = asc2hex($asc);
$asc = hex2asc($hex);
echo "hex : ".$hex;
echo "<br>
";
echo "asc : ".$asc;
?>


質問 1 は utf8 エンコードですか? ?なぜこの関数は ASCII から 16 進数であると言えるのでしょうか? 結果はxe5x93x88xe5x93x88

笑のASCIIコードの16進数表現が54c8 54c8であることを確認しましたが、明らかに違います

わかりません




------解決策----------------------
ここで「ascii」を使用するのは明らかに適切ではありませんし、「16 進数に変換する」と言うのも適切ではありません。 関数の機能は、実際には文字列のエンコーディングを 16 進数形式

で表現することです。

関数のヘッダーにある「非営利団体または個人の場合はご自由に転載してください。商用利用については作者の同意を得てください」という記述も非常に面白いです。
そのような理由からです。単純なコードにはオリジナリティがなく、他の人が見なくても同じコードを書くことができます
もちろん「作者の同意を得る」必要はありません



議論
PHP コード/**
*
* ASCII から 16 進数へ、および 16 進数から ASCII へ
* 非営利団体または個人はご自由に転載してください。商用利用については著者の同意を得てください
*
*/
//ASCII を 16 進数に変換
関数 asc2hex($str) {
return 'x'. substr(chunk_split(bin2hex ($str), 2, 'x'),0,-2);
}
//16 進数を A に変換します...


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。