私はutf8_decode()の動作について混乱しています。それが大丈夫だと思う。私のスクリプトは正常に動作しますが、なぜ私はutf8_decode()を使用する必要があるのか混乱しています。
ここで私はいくつかのテキストをキャプチャし、(utf8_general_ciの照合を使用しています)私のMySQLデータベースに保存するために使用している単純なHTMLフォームです:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form action="update.php" method="post" accept-charset="utf-8">
<p>
Title: <input type="text" name="title" id="title" accept-charset="utf-8" size="75" value="" />
</p>
<p>
<input type="submit" name="submit" value="Submit" />
</p>
</form>
</body>
</html>
あなたは、私はこのコード化を持って見ることができるように適切な場所にcharset = utf8と入力してください。発音欄(例:ñ、óなど)を含むテキストを受け入れます。最後に、すべてのテキスト入力に対して小さなスクリプトを実行して発音区別を確認し、HTMLエンティティに変更します(例:ñは& ntildeになります)。
私のスクリプトで入力が受け取られたら、まずutf8_decode($ input)を実行してから、私の小さなスクリプトを実行して必要な分音符号をチェックして変更しなければなりません。すべてうまく動作します。なぜ私はこの入力でデコードを実行しなければならないのか不思議です。私はutf8_decodeがUTF-8でコード化された文字列をISO-8859-1に変換することを理解しています。私はすべてがうまく動く(または私が考える) - 私は後で私に追いつく何かをやっていないよ - を確認したい。たとえば、ISO-8859-1でエンコードされた文字をデータベースに格納して送信し、UTF-8文字を格納/配信するように設定されているとします。私のdiacritics-to-entitiesスクリプトが返す文字列にutf8_encode()を実行するような何かをする必要がありますか?例:
これについて誰でも洞察してください。
「それがうまくいく」ことができない – bernie