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