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

Ami*_*mir 7 php mysql encoding

我正在尝试使用PHP和MySQL构建购物车.MySQL中的数据库是utf8,数据库中的表是utf8,

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

小智 19

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

  1. db collat​​ion必须是 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. 在连接脚本中选择db之后 mysql_query("SET NAMES 'utf8'");


Pin*_*kyo 6

经过大量的工作,我找到了一个始终有效的解决方案..:没有SET_NAMES.

conn.inc.php文件中,选择数据库并连接到该文件后,请执行以下操作:

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

...并且在HTML中始终使用charset utf-8;

这解决了我.没有必要使用set_names(),这是好的,但它让我很生气.


Jan*_*sen 5

您可以在代码中使用PDO,如下所示:

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

确保在'utf8'周围加上单引号.


Ted*_*opp 1

问号出现在哪里?这可能是数据库以外的某个地方的编码问题。