我使用php + mysql制作动态页面。我的数据库有“将其编码为 在网页中制作。我虽然这是一个编码问题所以,我尝试使用<html lang='en' dir='ltr'>
&amp; <meta charset="utf-8" />
但这也无济于事
答案 0 :(得分:2)
在处理任何字符集时,将所有内容设置为相同非常重要。您提到将PHP和HTML标头都设置为UTF-8,这通常可以解决问题,但同样重要的是数据库连接,实际数据库及其表也使用UTF-8进行编码。
<强>连接强>
您还需要在连接本身中指定字符集。
$handler = new PDO('mysql:host=localhost;dbname=database;charset=utf8', 'username', 'password', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET UTF8"));
$mysqli->set_charset("utf8");
mysqli_set_charset($mysqli, "utf8");
$mysqli
是MySQLi连接) mysql_set_charset("utf8");
数据库和表格
您的数据库及其所有表格必须设置为UTF-8。请注意,charset 不与归类完全相同(请参阅this post)。
您可以通过为每个数据库和表格运行一次下面的查询(例如在phpMyAdmin中)来实现这一目标
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
文件编码的 强>
文件本身也可能需要UTF-8编码。如果您使用Notepad ++编写代码,可以在任务栏的“格式”下拉菜单中完成(您应该使用转换为... ,因为这不会弄乱您的当前文件) - 但任何体面的IDE都有类似的选择。您应该使用UTF-8 w/o BOM
(请参阅this StackOverflow question)。
其他
如果你按照上面的所有指示,你的问题很可能会得到解决。如果没有,您可以查看此StackOverflow帖子:UTF-8 all the way through。
答案 1 :(得分:0)
如果 在您的数据库列中,请将原始字符更改为以下内容: