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 件のコメント:

コメントを投稿

.htaccessで403を404で返す

久しぶりにリライトルールを書いたよ。 ドキュメントルートに.htaccessを置く場合の記述↓ # 403.html は実体がなくてよい。この設定をすることで、あっても使われなくなる。 ErrorDocument 403 /403.html # 独自の404ページをドキュメ...