Php 字符编码为;
我正在使用php+mysql制作一个动态页面。我的数据库有“Make”,编码为�我认为这是一个编码问题,所以,我尝试使用Php 字符编码为;,php,html,mysql,Php,Html,Mysql,我正在使用php+mysql制作一个动态页面。我的数据库有“Make”,编码为�我认为这是一个编码问题,所以,我尝试使用&,但这也没有帮助当处理任何字符集时,将所有内容都设置为相同很重要。您提到将PHP和HTML头都设置为UTF-8,这通常会起作用,但da也很重要tabase连接、实际数据库及其表也使用UTF-8编码 连接 您还需要在连接本身中指定字符集 PDO(在对象本身中指定): $handler=newpdo('mysql:host=localhost;dbname=database;c
&
,但这也没有帮助当处理任何字符集时,将所有内容都设置为相同很重要。您提到将PHP和HTML头都设置为UTF-8,这通常会起作用,但da也很重要tabase连接、实际数据库及其表也使用UTF-8编码
连接
您还需要在连接本身中指定字符集
- PDO(在对象本身中指定):
$handler=newpdo('mysql:host=localhost;dbname=database;charset=utf8','username','password',array(PDO::mysql\u ATTR\u INIT\u COMMAND=>“SET CHARACTER SET utf8”);
- MySQLi:(在创建连接后直接放置)
- 对于OOP:
$mysqli->set_字符集(“utf8”);
- 对于过程:
mysqli\u set\u字符集($mysqli,“utf8”);
(其中,
是mysqli连接)$mysqli
- 对于OOP:
- MySQL(无润滑,应转换为PDO或MySQLi):(在创建连接后直接放置)
mysql\u set\u字符集(“utf8”);
UTF-8 w/o BOM
(请参阅)
其他
- 可能是您的数据库中已有未使用UTF-8编码的值。手动更新这些值可能会很麻烦,并且可能会耗费大量时间。如果是这种情况,您可以使用类似的方法在数据库中循环,使用该函数更新字段
如果你按照上面所有的指示去做,你的问题很可能会得到解决。如果没有,你可以看看这个StackOverflow帖子:。如果� 在数据库列本身中,将原始字符更改为以下内容:
我甚至尝试了
标题('Content-type:text/plain;charset=utf-8');
和标题('Content-type:text/html;charset=utf-8'))
但仍然是同一个问题我很确定这是一个编码问题,但是你应该有更多的信息来解决它。mysql中的字符可以吗?正确的字符是什么?那里使用的编码是什么?具体写到HTML中的是什么(� 只是因为它无效,所以不能显示它,但它没有显示它无效的原因)?PDO::MYSQL\u ATTR\u INIT\u COMMAND=>“SET CHARACTER SET UTF8”
解决了问题,其余的事情已经准备好了
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;