4

MySQLにいくつかのフレーズを挿入したい

最初のフィールドは英語で、2番目のフィールドは韓国語です。PHPスクリプトから値を挿入するたびに、このようにMYSQLに表示される問題。학교

ただし、PhpMyAdminから同じ韓国語の値を挿入すると機能するため、phpスクリプトに問題があります。CollationMySQLで変更する必要があることをWebで見つけましたか?

何か助けはありますか?

<?

//*---------------------------------------------------------*\\
//* if POST
//*---------------------------------------------------------*\\
if($_POST['addphrase'])
{
    $SQL = "INSERT INTO `sd_phrases` VALUES(NULL,?,?)";
    $db = new db();
    $db->execute($SQL,$_POST['english'],$_POST['korean']);
    $box = new true_box();
    $box->init('PLease Wait....','index.php?action=phrases');
    die();
}

?>
<form method="post">
<center>
    <table class="horz">
    <tr><th colspan="2">Add a new Phrase</th></tr>
    <tr><td>English Phrase</td><td><div align="left"><input type="text" size="80" name="english"></div>
    </td></tr>
    <tr><td>Korean Phrase</td><td><div align="left"><input type="text" size="80" name="korean"></div>
    </td></tr>
    <tr><td colspan="2"><input type="submit" value="Add" name="addphrase"></td></tr>
    </table>
</center>
</form>

ここに画像の説明を入力してください

ここに画像の説明を入力してください

4

2 に答える 2

9

utf8_unicode_ciDanack57が言うように、照合はに設定する必要があります。

文字エンコードスキームとしてUTF8のみを使用する必要があります。

default-character-set = utf8

各mysql接続を開いた後、Readthisを実行set names utf8;ます

于 2012-06-24T23:46:35.630 に答える
1

問題は、htmlページがユーザーのブラウザにエンコーディングを報告する方法です。1つはutf8として報告しており、もう1つは他のエンコーディングとして報告していると思われます。したがって、値がブラウザからポストバックされると、は異なる方法でエンコードされます。PHPはエンコードを行いません。多かれ少なかれ、フォームがそれに投稿するものを取ります。ページをロードし、Webブラウザでエンコーディングをチェックして、メタタグを使用して同じエンコーディングを報告する2つのページを取得できるかどうかを確認します。

于 2012-06-25T01:14:40.053 に答える