【发布时间】:2014-03-24 21:39:54
【问题描述】:
我在 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">
此外,我以UTF-8 格式保存了我所有的php 和html 文件。
我注意到,如果我在页面中写一个像ò 这样的字符并显示该页面,它就会正确显示。如果我从包含ò 的数据库中获取字符串查询,它不会正确显示,但如果我将代码更改为:
header('Content-type:text/html; charset=iso-8859-1');
从数据库中检索到的查询正确显示,正常写入不正确。 那么,问题出在mysql字符集上吗?如果我按照之前的说明设置会怎么样?
【问题讨论】:
标签: mysql utf-8 character-encoding special-characters iso-8859-1