MySQL数据库问号,而不是希伯来字符..?

我试图用PHP和MySQL构build一个购物车。 我在MySQL中的数据库是utf8,我的数据库表是utf8,

我怎样才能使用希伯来字符?

我能够通过执行以下操作来解决这个问题:

  1. 数据库归类必须是utf8_general_ci
  2. 与希伯来语表的整理必须是utf8_general_ci
  3. 在你的php连接脚本中放置header('Content-Type: text/html; charset=utf-8');
  4. 在xhtml头标签中放置<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. 在连接脚本中select数据库后,把mysql_query("SET NAMES 'utf8'");

经过大量的工作,我发现一个解决scheme,总是工作..:没有SET_NAMES。

conn.inc.php文件中,在select数据库并连接到它之后,执行以下操作:

 if(!mysqli_set_charset($conn, 'utf8')) { echo 'the connection is not in utf8'; exit(); } 

…在HTML中总是使用字符集utf-8;

这为我解决了。 没有必要使用set_names() ,这是好的,但它让我恼火。

你可以像这样在代码中使用PDO:

  $db = new PDO($config['DSN'], $config['dbUserName'], $config['dbPassword']); $db->exec("SET NAMES 'utf8'"); 

确保在'utf8'中包含单引号。

如果这是一个编码问题(听起来像是这样),这个查询将有助于:

 SET NAMES utf8 

执行此查询(例如mysql_query("SET NAMES utf8") ),然后再移动任何数据。

更多信息

问号在哪里出现? 这可能是一个编码问题,而不是在数据库中。

要将非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

$ conn-> set_charset( “UTF8”); 使用这个你的dbconnect

mysql_query('SET NAMES utf8') …..把这个在PHP中