-1

只是一个简单的问题。我在我的 MySQL 数据库和 HTML 文件中都使用 UTF-8 作为标准。我不明白的一件事是,为什么在 SQL 中显示的字母与我键入时不同。我确信在使用 UTF-8 时,它的放置方式应该与我编写它的方式完全相同。

是否有一个类或其他东西可以自动将所有发布的数据保存在 UTF-8 中,然后按原样发布?

4

3 回答 3

0

您的文本编辑器也会影响您的字符编码。请务必使用可以将字符编码设置为 UTF-8 的文本编辑器或 IDE。

于 2013-07-28T12:56:18.693 回答
0

我的解决方案 如果有人遇到类似的问题,我的解决方法是在 PDO 连接之后添加此行, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")

现在连接字符串如下所示:

$conn = new PDO('mysql:host=localhost;dbname=$dbname', $username, $password, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));

于 2013-07-29T07:23:51.673 回答
0

如果不成功,请尝试 1. 方法 2.metod。最后一种方法我说用 notepad2 编辑器打开 HTML 文件并将编码从文件菜单更改为 UTF8 并保存。我认为这将是解决方案;

  1. 方法
    $dsn = $config ["驱动程序"] 。':dbname=' 。$config ['dbname'] 。';主机='。$config ['主机'];
        . ';charset=UTF-8'; //---> 这是解决方案
        尝试 {
            $this->link = new PDO ($dsn, $config ['user'], $config ['pass'] );
            // mysql 驱动程序忽略 $dsn 中的字符集指令(是的,这很糟糕)
            if ($config ["driver"] == 'mysql')
                $this->link->exec("set names utf8");
        }
        捕捉(PDOException $e){
            die ("Hata var :" . $e->getMessage () );
        }

其他:

$encodings = array("windows-1254","utf-8", "iso-8859-9" );
$data = file_get_contents($TempSrc);
$data=mb_convert_encoding($data, 'UTF-8', mb_detect_encoding($data, $encodings));

于 2013-07-28T16:33:55.730 回答