我有这个简单的PHP脚本,它搜索mySQL数据库并将结果输出给用户。我曾经使用ISO-8859-1
作为我的字符集,但建议使用UTF-8
。但是我很难从我以前的charset转到新的charset。
为澄清一些事情,我有:
UTF-8
创建了一个以utf8_unicode_ci
编码的数据库和表格。UTF-8
。UTF-8
。mime-types
设置为UTF-8
至create-mime.assign.pl
。现在,当我使用ö
,ü
等字符从数据库中检索数据时出现问题。如果我只是在没有从数据库中检索它的情况下执行echo "ö";
,它就可以正常工作。我猜数据库肯定有问题吗?
我尝试了以下内容,他们已经解决了我的问题:
ISO-8859-1
(由于某些奇怪的原因,它会起作用,但会打破回声“ö”)。utf8_decode()
函数。mysql_select_db()
宣布以下mysql_set_charset('utf8');
。我知道我找到了多种解决方案,但我不知道为什么没有它们就无法工作?在输出或utf8_decode()
函数上使用mysql_set_charset()
是不好的做法吗?
答案 0 :(得分:1)
MySQL对UTF8很有趣。您需要确保服务器以UTF运行并且连接也是如此
如果您可以修改服务器上的my.cnf文件,可以将它们添加到[mysqld]部分并重新启动它
character-set-server = utf8
skip-character-set-client-handshake
您也可以(或者也可以)使用
query("SET NAMES utf8");
在发送/检索数据之前确保数据库需要传递UTF8数据