我正在运行一个从mysql数据库获取内容的德语网站。 我将字符集定义为utf8如下:
<meta http-equiv='Content-Type' content='text/html;charset=utf-8' />
问题是,当从数据库中获取+显示内容时,我总是需要使用utf8_encode才能获得正确的德语“变音符号”。
我想为我的网站维护utf8字符集,因为我必须添加更多具有特殊字符的语言。
关于如何以1:1回显数据库内容而不必使用utf8_encode的任何想法?
感谢
答案 0 :(得分:2)
很难说没有看到你如何连接到你的数据库,但常见的问题是数据库连接本身。
打开/选择数据库后,您需要设置:
$db->exec('SET CHARACTER SET utf8'); // PDO
mysql_set_charset('utf8'); // Deprecated mysql_* extension
答案 1 :(得分:1)
每当我想在PHP和MySQL中使用utf-8时,我发现通常这两个函数是mysql_connect()
后应该使用的函数:
mysql_set_charset('utf8', $link);
mysql_query('SET NAMES utf8', $link);
答案 2 :(得分:0)
在标题中设置内容类型可以解决问题:
header('content-type: text/html; charset=utf-8');
答案 3 :(得分:0)
我遇到了类似的问题,我在PHP文件的开头解决了这个问题:
ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');
此外,检查您是否在没有BOM的情况下以UTF-8格式保存PHP文件非常重要,我对此非常头疼。我推荐Notepad++,它显示当前的文件编码,并允许您在没有BOM的情况下转换为UTF-8。
如果您想查看我的问题和解决方案,it is here。
希望它可以帮到你!