如何在php中的mysql数据库中插入希伯来语值

Imr*_*ado 6 php mysql collation

我正在尝试将希伯来语值插入到我的mysql数据库中,而不是希伯来语中的值看起来像那样.

ש×"×'ש×"×>עש×"

该表的排序规则是latin1_swedish_ci默认情况下,我也尝试更改为utf-8_general_ci,hebrew_bin,hebrew_general_ci,但结果仍然相同.

在我的代码中,我当然使用元标记来配置字符集:

<meta charset="UTF-8">
Run Code Online (Sandbox Code Playgroud)

在我的php查询之前,我添加了这一行:

mysql_query("SET NAMES utf8");
Run Code Online (Sandbox Code Playgroud)

我在phpmyadmin中查看结果.

小智 16

我已经解决了希伯来语的问题.这是一个数据库和表行/字段编码问题.这是我使用的解决方案.我从另一个答案中获得了帮助,下面给出了链接,以防有人需要.

  1. 数据库整理必须是utf8_general_ci.
  2. 表与希伯来语的整理必须是utf8_general_ci.
  3. 在PHP连接脚本中

    header('Content-Type: text/html; charset=utf-8');
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在xhtml头标签中

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
    Run Code Online (Sandbox Code Playgroud)
  5. 如果您使用MySQLi,请在选择数据库后将此代码放入连接脚本中:

    mysql_query("SET NAMES 'utf8'");
    
    Run Code Online (Sandbox Code Playgroud)

    如果您正在使用PDO,请将其放入

    $conn->query("SET NAMES 'utf8'");
    
    Run Code Online (Sandbox Code Playgroud)

第一个答案帮助了我,我从那里拿走了它


Pra*_*n D 6

设置charset以实现解决方案

在创建数据库时

CREATE DATABASE db_name
 CHARACTER SET utf8
 DEFAULT CHARACTER SET utf8
 COLLATE utf8_general_ci
 DEFAULT COLLATE utf8_general_ci
 ;
Run Code Online (Sandbox Code Playgroud)

或者,如果已创建数据库

CREATE TABLE table_name(
 ...
 )
 DEFAULT CHARACTER SET utf8   
 COLLATE utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)

或者在编写查询时

mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);


$re = mysql_query('SHOW VARIABLES LIKE "%character_set%";')or die(mysql_error());
while ($r = mysql_fetch_assoc($re)) {var_dump ($r); echo "<br />";} 
Run Code Online (Sandbox Code Playgroud)


dwj*_*wjv 4

检查 collat​​ion_connection:

show variables like '%collation%'
Run Code Online (Sandbox Code Playgroud)