我正在尝试将希伯来语值插入到我的mysql数据库中,而不是希伯来语,这些值看起来就是这样。
×ש“השד×>עשד
默认情况下,表的校对是latin1_swedish_ci,我也尝试更改为utf-8_general_ci,hebrew_bin,hebrew_general_ci,但结果仍然相同。
在我的代码中,我当然使用元标记来配置字符集:
<meta charset="UTF-8">
在我的php查询之前,我添加了这一行:
mysql_query("SET NAMES utf8");
我在phpmyadmin中查看结果。
答案 0 :(得分:16)
我已经解决了希伯来语的问题。这是一个数据库和表行/字段编码问题。这是我使用的解决方案。我从另一个答案中获得了帮助,下面给出了链接,以防有人需要。
utf8_general_ci
。 utf8_general_ci
。在PHP连接脚本中添加
header('Content-Type: text/html; charset=utf-8');
在xhtml head标签中
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
如果您使用MySQLi,请在选择数据库后将此代码放入连接脚本中:
mysql_query("SET NAMES 'utf8'");
如果您使用的是PDO,请输入
$conn->query("SET NAMES 'utf8'");
答案 1 :(得分:6)
设置charset以实现解决方案
创建数据库时
CREATE DATABASE db_name
CHARACTER SET utf8
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci
DEFAULT COLLATE utf8_general_ci
;
或者,如果已创建数据库
CREATE TABLE table_name(
...
)
DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci;
编写查询时的OR
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 />";}
答案 2 :(得分:2)
检查collation_connection:
show variables like '%collation%'
答案 3 :(得分:1)
你应该确保:
然后你应该能够在phpadmin中正确地查看希伯来语或任何其他语言
答案 4 :(得分:0)
我想说,为了确保将值传递给数据库,我会在插入数据库并打印值之前添加一个die语句,例如:
die($_POST['thevalue']);
//insert to database.
//...
如果进展顺利,则问题出现在数据库端,在数据库上我会尝试使用此归类
|希伯来语| ISO 8859-8希伯来语| hebrew_general_ci | 1 |
根据http://dev.mysql.com/doc/refman/5.0/en/charset-mysql.html建议。
但如果它在php端失败,原因可能是,服务器不支持希伯来语,请确保在html输出文档中使用正确的元标记
...
<meta charset="ISO 8859-8">
...
让我们知道它是如何进行的,祝你好运:)
答案 5 :(得分:0)
我同意将其设置为utf-8选项,但是如果由于某种原因你不能再将其转换为base64。不是最好的(很长一段路),但可以帮助某人走出困境。
答案 6 :(得分:0)
为了将来使用,如果您遇到此问题并且使用的是PDO而不是mysqli,则需要这样做:
希望这有助于未来有这个问题和使用PDO的人。 祝你好运。
答案 7 :(得分:0)
最终帮助我的是将charset添加到连接中:
{"mysql:host=$host;dbname=$db;charset=utf8"}
答案 8 :(得分:-1)
我想我知道了: 这是我的代码:
interface{}