2012-08-14

HTMLエンティティ

久しぶりの記事更新。


UTF-8,Shift_JIS,EUC-JPで次のコードを実行したら、それぞれ結果が異なった。

<!DOCTYPE html>
<html>
<head>
<meta charset="それぞれのcharset">
<title>HTMLエンティティ</title>
</head>
<body>
<form method="post">
<?php
$val = isset($_POST['val']) ? $_POST['val'] : '';
?>
<p>入力値:<input type="text" name="val" 
    value="<?=htmlentities($val, ENT_QUOTES, 'それぞれのcharset', false)?>" /></p>
<p><input type="submit" value="GO" /></p>
<?php
echo "ポスト:{$val}";  //  XSS脆弱性があるので注意。
?>
</body>
</html>


で、それぞれのエンコードの結果はこれ。


■chrome

・UTF-8
入力値:©       //  ソースを表示すると、&copy;
ポスト:©       //  ソースを表示すると、©

・Shift_JIS
入力値:©       //  ソースを表示すると、&#169;  
ポスト:©       //  ソースを表示すると、&#169;

・EUC-JP
入力値:©       //  ソースを表示すると、©
ポスト:©       //  ソースを表示すると、©



■IE

・UTF-8
入力値:©       //  ソースを表示すると、&copy;
ポスト:©       //  ソースを表示すると、©

・Shift_JIS
入力値:©       //  ソースを表示すると、&copy;
ポスト:©       //  ソースを表示すると、&copy;

・EUC-JP
入力値:©       //  ソースを表示すると、&copy;
ポスト:©       //  ソースを表示すると、&copy;



微妙に結果が番う。

0 件のコメント:

コメントを投稿

結局は可愛い我が子

以前の会社の話。 俺がいたころ、「当時の社長」の息子が転職してきた。 「あー、結局は同族会社か」 と思ったし、まあ、ほかのヤツもそう思ったよね。 その時は否定した「当時の社長」。 でも、なーんか含みを持たせた逃げの言い訳してたなー。 その器があればとか、 周りが認めてくれればとか...