在mysql数据库中存储波斯语\阿拉伯语文本

时间:2014-12-13 15:29:40

标签: mysql

我有一个昵称列,它的集合是utf8-general-ci,表集合是UTF-8。但波斯语/阿拉伯语文本存储在下面。

http://i.stack.imgur.com/CCWOa.png

如何解决这个问题?

我使用此代码保存

$sql = "INSERT INTO kashef_users(nickname ,username ,email ,ostan ,age ,gender ,sdk ,phonename ,imei ,time ) VALUES ".$data;

$data包含一个字符串,数据中的所有内容都是正确的

1 个答案:

答案 0 :(得分:4)

您似乎正在使用php填充$data。因此,您必须将字符集设置为UTF8(即SET NAMES 'utf-8';)。例如,如果您使用mysqli,则代码将如下所示:

<?php
    $conn = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
    mysqli_set_charset($conn,"utf8");

如果您使用PDOthis answer弃用mysql,请使用this one。此外,不要忘记使用utf8-persian-ci集合。

如果您有表单,请在html中将accept-charset设为UTF-8

<form action="" accept-charset="UTF-8">