我正在编写一个页面,向用户显示来自数据库的一些信息,该信息包含一些重音,我在这里发出请求<input type="text" id="de" value="<?php echo $row->de; ?>" class="input" size="50"/>
他在这里显示了字符集问题(í,ã)和值显示( ????不是这个词,我怎么能解决这个问题?
是的,我的页面上有<META http-equiv="Content-Type" content="text/html; charset=utf-8">
。
抱歉我的英语不好。
答案 0 :(得分:0)
使用PHP函数utf8_encode
尝试:
<input type="text" id="de" value="<?php echo utf8_encode($row->de); ?>" class="input" size="50"/>
确保将IDE使用配置为默认的UTF-8。
这是现场检查,即整个返回必须放置此功能。 如下所示,要检查确定性:
在每个PHP输出标头中,指定UTF-8作为编码:
header('Content-Type: text/html; charset=utf-8');
<强>的MySQL _ * 强>
$link = mysql_connect('localhost', 'user', 'password');
mysql_set_charset('utf8', $link);
不推荐使用mysql_ *
<强>的mysqli 强>
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
$mysqli->set_charset("utf8");
<强> PDO 强>
$pdo = new PDO(
'mysql:host=mysql.example.com;dbname=example_db',
"username",
"password",
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
在MySQL方面,需要对my.ini
文件进行如下修改:
[client]
default-character-set=UTF-8
[mysql]
default-character-set=UTF-8
[mysqld]
character-set-client-handshake = false #force encoding to uft8
character-set-server=UTF-8
collation-server=UTF-8_general_ci
[mysqld_safe]
default-character-set=UTF-8