我使用以下代码在我的数据库中存储和更新数据。
<?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
编辑:数据库使用 latin1_general_ci 作为排序规则。