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

コメントを投稿

Chatの「メッセージは投稿者によって削除されました」を非表示にする方法

Chrome拡張機能を自作してやってみよう! ♪できるかな できるかな ・・・ 無理ぽ (´・ω・`) iframeの中に、実際のメッセージのやり取りが表示されるので、 $(function(){ $('iframe[name^="spa...