次のコードを使用して、データベースにデータを保存および更新します。
<?php
header("Content-Type: text/html;charset=UTF-8", true);
mysql_connect("localhost", "test", "test") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
// mysql_set_charset('UTF8');
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'");
mysql_query("UPDATE `test`.`english` SET age = '".$age."', city = '".mysql_real_escape_string($_REQUEST['city'])."', aboutMe = '".$_REQUEST['about']."' WHERE `english`.`username` = '".$_REQUEST['username']."' LIMIT 1 ;")
or die(mysql_error());
コードはうまく機能しています。ただし、「city」などの文字列にä、ö、üが含まれている場合は、?として格納されます。たとえば、「Bär」という単語は「B?r」になります。
私はすでにこれらのutf8のものを追加しましたが、それは役に立ちません。サーバーはphp4.xのみをサポートしています
編集:DBは照合としてlatin1_general_ciを使用しています。