数据库中的特殊字符显示不正确


Special character from database are displayed incorrect

我有一个小php程序,可以向客户发送电子邮件。

该电子邮件包含以html代码编写的文本,还包含来自我的MySQL数据库的数据。

我已经尝试将电子邮件的编码更改为UTF-8和ISO-8859-1。

根据编码的不同,当一个单词包含特殊字符时,html文本或数据库数据显示错误。我需要如何更改设置才能正确显示我的电子邮件。

您的问题非常有限。我猜你在html中使用了下面的代码。

<meta charset="...">

我还猜测你使用mysqli从数据库中检索数据,而你没有使用

mysqli_set_charset()

这是用于上述功能的文档。

很抱歉,我没有足够清楚地描述我的问题。

我想通过php文件发送电子邮件。这封电子邮件将包含文件中包含的文本,但也包含数据库中的数据。

在我的php文件头中,我使用

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">

在电子邮件标题$headers .= "Content-type:text/html;charset=UTF-8" . "'r'n";

然后,电子邮件中包含了从数据库中提取的零件的所有特殊字母的奇怪符号。

我找到了下面的解决方案,它帮助我解决了这个问题。在数据库连接之后,需要输入以下几行。

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'");