我的数据库处理中文和日文字符。
当我在phpMyAdmin命令框中插入行时,它可以很好地工作。
但是当我在我的网站上设置查询输入时会出现问题,查询是通过php文件获取的,例如:
$query = $_POST['query'];
$result = $dbc->query($query);
非英语字符在数据库中变成垃圾,比如
ID column1
1666 ä½ å¥½å•Šå•Šå•Š
我检查过php文件接收到的字符很好,问题应该来自Mysql。所有的charset都是utf-8。
我是mysql的新手,如果您需要更多信息,请告诉我。
提前谢谢。
答案 0 :(得分:0)
列的归类设置为utf8_general_ci
更多信息:https://dev.mysql.com/doc/refman/5.7/en/charset-applications.html
将此行添加到PHPMyAdmin
中的config.inc.php中$cfg['DefaultCharset'] = 'utf8';
$cfg['DefaultConnectionCollation'] = 'utf8_general_ci';
答案 1 :(得分:0)
由于phpMyAdmin正常工作,听起来你的应用程序在这里有问题。
也许你可以澄清你在写“php文件收到字符好”时的意思 - 你是如何确定的?我阅读它的方式,您可以从您的应用程序创建正确的字符,并通过phpMyAdmin在数据库中正确显示,但当您尝试通过您的应用程序显示它时,它显示乱码。在这种情况下,应用程序中检索和显示数据的部分似乎有问题。
无论如何,这里有很多关于有胡言乱语的人的答案,最好的起点是UTF-8 all the way through,你还可以在Special characters in PHP / MySQL或Problem with PHP and Mysql UTF-8 (Special Character)阅读更多内容。最后,即使它已经脱离了Stackoverflow网络,phpMyAdmin wiki也能很好地覆盖它。
作为提示,大多数时候我看到这个问题是由于在从PHP脚本设置MySQL连接时没有发出SET NAMES(或使用等效函数)引起的。