使用PHP + MySQL的utf-8编码问题

Adr*_*ana 17 php mysql encoding utf-8 multibyte

我将数据从MySQL 4(它们最初设置为latin2 encoding)移动到MySQL 5并将编码设置为utf-8.它看起来不错phpMyAdmin,而且utf-8还可以.但是网站上有问号而不是一些字符!网站编码也设置为utf8所以我不明白问题在哪里.

PHPHTML文件也设置为utf8.

我不知道...

Val*_*lev 29

尝试查询

SET NAMES utf8
Run Code Online (Sandbox Code Playgroud)

在应用程序中的任何查询之前


Jon*_*oss 19

在我的服务器上,将这些添加到我的php文件中没有任何效果:

ini_set('default_charset','utf-8');
mysql_set_charset('utf8');
header('Content-type: text/html; charset=utf-8');
Run Code Online (Sandbox Code Playgroud)

但是一旦我将它添加到我的php文件的顶部,一切都很完美:

$mysqli->query("SET NAMES 'utf8'");
Run Code Online (Sandbox Code Playgroud)

注意:我utf8_general_ci在我的数据库中使用编码,但utf8_unicode_ci对我来说也是如此.

希望有所帮助.


Fra*_*anz 13

尝试将MySQL连接设置为UTF-8:

SET NAMES 'utf8'
Run Code Online (Sandbox Code Playgroud)

并发送明确的UTF-8标头,以防您的服务器具有其他一些默认设置:

header('Content-type: text/html; charset=utf-8');
Run Code Online (Sandbox Code Playgroud)