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

时间:2015-02-27 14:30:44

标签: php mysql

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

<meta charset="...">

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

mysqli_set_charset()

以下是上述函数的Docs

答案 1 :(得分:0)

对不起,我没有说清楚我的问题。

我想通过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'");