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
入力値:© // ソースを表示すると、© ポスト:© // ソースを表示すると、© ・Shift_JIS 入力値:© // ソースを表示すると、© ポスト:© // ソースを表示すると、© ・EUC-JP 入力値:© // ソースを表示すると、© ポスト:© // ソースを表示すると、©
■IE
・UTF-8 入力値:© // ソースを表示すると、© ポスト:© // ソースを表示すると、© ・Shift_JIS 入力値:© // ソースを表示すると、© ポスト:© // ソースを表示すると、© ・EUC-JP 入力値:© // ソースを表示すると、© ポスト:© // ソースを表示すると、©
微妙に結果が番う。
0 件のコメント:
コメントを投稿