我正在尝试使用PHP& amp;来构建购物车MySQL的。 MySQL中的数据库是utf8,数据库中的表是utf8,
我如何使用希伯来字符?
答案 0 :(得分:19)
我能够通过以下方式解决这个问题:
utf8_general_ci
utf8_general_ci
header('Content-Type: text/html; charset=utf-8');
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
mysql_query("SET NAMES 'utf8'");
答案 1 :(得分:6)
经过大量的工作,我找到了一个始终有效的解决方案..: 没有SET_NAMES。
在conn.inc.php
文件中,选择数据库并连接到该数据库后,请执行以下操作:
if(!mysqli_set_charset($conn, 'utf8')) {
echo 'the connection is not in utf8';
exit();
}
...并且在html中始终使用charset utf-8;
这解决了我。不需要使用set_names()
,这没关系,但它让我很生气。
答案 2 :(得分:5)
您可以在代码中使用PDO,如下所示:
$db = new PDO($config['DSN'], $config['dbUserName'], $config['dbPassword']);
$db->exec("SET NAMES 'utf8'");
确保在'utf8'周围加上单引号。
答案 3 :(得分:3)
如果这是一个编码问题(听起来像是这样),这个查询将有所帮助:
SET NAMES utf8
在您连接之后和移动任何数据之前立即执行此查询(例如mysql_query("SET NAMES utf8")
)。
答案 4 :(得分:2)
$ conn-&GT; set_charset( “UTF8”);将此用于dbconnect
答案 5 :(得分:1)
问号出现在哪里?它可能是除数据库之外的某个地方的编码问题。
答案 6 :(得分:1)
要在数据库列中存储非ASCII字符,您需要使用特定字符集定义该列。您可以指定3个级别的字符集:数据库,表和列。例如:
CREATE DATABASE db_name CHARACTER SET utf8
CREATE TABLE tbl_name (...) CHARACTER SET utf8
CREATE TABLE tbl_name (col_name CHAR(80) CHARACTER SET utf8, ...)
http://www.herongyang.com/PHP/Non-ASCII-MySQL-Store-Non-ASCII-Character-in-Database.html
答案 7 :(得分:0)
在我的情况下,我从转储创建了数据库,这个命令解决了它:
ALTER DATABASE <database_name> CHARACTER SET utf8 COLLATE utf8_unicode_ci;
答案 8 :(得分:-1)
mysql_query('SET NAMES utf8')
.....把它放在Php