我有UTF8中的数据库,除了一件事,一切都很好 - 当我写入文件$ mysqli-> connect_error时,它是用cp1251编写的,而不是utf8。
if ($mysqli->connect_errno)
file_put_contents('error.log', 'Ошибка: '.$db->connect_error, FILE_APPEND);
在文件中我可以看到'Ошибка:',但随后以错误的编码进行文本传输。如何为MySQLi错误消息设置utf8?
答案 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');