MySQLi错误消息编码

时间:2015-03-13 14:00:25

标签: php mysqli utf-8

我有UTF8中的数据库,除了一件事,一切都很好 - 当我写入文件$ mysqli-> connect_error时,它是用cp1251编写的,而不是utf8。

if ($mysqli->connect_errno)
    file_put_contents('error.log', 'Ошибка: '.$db->connect_error, FILE_APPEND);

在文件中我可以看到'Ошибка:',但随后以错误的编码进行文本传输。如何为MySQLi错误消息设置utf8?

2 个答案:

答案 0 :(得分:0)

此处提供了文档http://php.net/manual/en/mysqli.set-charset.php

OOP方法

$mysqli->set_charset("cp1251");

手动approuch

mysqli_set_charset($connection, "utf8");

答案 1 :(得分:0)

您可以尝试在连接前设置字符编码:

$mysqli = mysqli_init();
$mysqli->options(MYSQLI_SET_CHARSET_NAME, "utf8");
$mysqli->connect(HOST, USER, PASSWORD, DATABASE);

或者对于错误打印,您可以转换编码:

echo mb_convert_encoding($mysqli->connect_error, 'utf8', 'cp1251');