Php字符集信息

时间:2014-04-28 15:52:35

标签: php html mysql

我正在编写一个页面,向用户显示来自数据库的一些信息,该信息包含一些重音,我在这里发出请求<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"> 。 抱歉我的英语不好。

1 个答案:

答案 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