我在PHP / MySQL中遇到一些特殊字符的问题(我不知道哪一个)。 然后,我使用php将数据存储在数据库中。我确保在存储数据之前添加此代码:
header('Content-type:text/html; charset=utf-8');
$link=mysqli_connect("host","user","","db") or die(mysqli_error($link));
mysqli_query($link,"SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8';SET NAMES utf8");
我还确保Apache使用正确的字符集:
AddDefaultCharset utf-8
此外,我还尝试在每个html页面上添加meta
标记:
<meta http-equiv="content-type" content="text/html" charset="UTF-8">
此外,我以php
格式保存了所有html
和UTF-8
个文件。
我注意到如果我在页面中写了一个像ò
这样的字符并显示该页面就会正确显示。如果我从包含ò
的数据库中获取字符串查询,则它无法正确显示,但如果我将代码更改为:
header('Content-type:text/html; charset=iso-8859-1');
正确显示从DB检索到的查询,而不是正常写入。 那么,问题出在mysql charset上?如果我用之前的说明设置它会怎么样?
答案 0 :(得分:0)
尝试使用http://fi2.php.net/mysqli_set_charset函数代替您现在使用的mysqli_query()。
答案 1 :(得分:0)
尝试将您存储此日期的列更改为utf8
这里有一些您可以使用的代码。
更改字符集/归类(database
):
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8;
更改字符集/归类(table
):
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8;
更改字符集/归类(columns
):
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;