PHP define()函数不适用于unicode utf-8字符

时间:2014-10-28 13:14:53

标签: php mysql unicode utf-8

我使用php define();函数并从MySQL数据库中输入值,如下所示:

$options = DataAccess::FETCHLOAD("SELECT sign FROM " . OPTIONS . " WHERE 1");
define('_SIGN_',$options['0']['sign']);

echo _SIGN_;

现在在输出中是:

?????????????????????

没有定义:

echo $options['0']['sign'];

输出工作:

تواصل معنا 

所有mysql结果都与utf-8输出一起工作,但是当我使用定义我的结果不在utf-8 !!

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这应该适合你:

您还在*.php文件中设置了字符集吗?

<html>
    <head>

        <title>Testing</title>
        <meta charset="UTF-8">
    </head>

    <body>

<?php 

    $options['0']['sign'] = "تواصل معنا";
    define('_SIGN_',$options['0']['sign']);

    echo _SIGN_;

?>

    </body>
</html>

评论后更新:

$options = DataAccess::FETCHLOAD("SELECT sign FROM " . OPTIONS . " WHERE 1");
echo $options['0']['sign'];  //You said that you here the output is "تواصل معنا"
define('_SIGN_',$options['0']['sign']);

echo _SIGN_;  //And here the output is "?????????????????????"

但这适合你:

define('_SIGN_',"تواصل معنا");
echo _SIGN_; //And here the output is "تواصل معنا"

这不可能!它不是本地人!