MySQL db问号而不是希伯来字符..?

时间:2011-03-13 06:08:00

标签: php mysql encoding

我正在尝试使用PHP& amp;来构建购物车MySQL的。 MySQL中的数据库是utf8,数据库中的表是utf8,

我如何使用希伯来字符?

9 个答案:

答案 0 :(得分:19)

我能够通过以下方式解决这个问题:

  1. db collat​​ion必须为utf8_general_ci
  2. 表与希伯来语的整理必须是utf8_general_ci
  3. 在您的php连接脚本中放置header('Content-Type: text/html; charset=utf-8');
  4. 在xhtml head标记中放置<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. 在连接脚本中选择db后放置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"))。

More info

答案 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