2014-12-13 79 views
1

我有一个昵称列,它的集合是utf8-general-ci,表集合是UTF-8。但波斯语/阿拉伯语文本存储如下。在mysql数据库中存储persian Arabic文本

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包含一个字符串,一切数据是正确的

+0

你肯定不只是在显示它的应用程序中的错误?如果它确实存储错误,那么它很可能是插入错误的,所以您需要显示插入的代码以及插入之前与该字符串一起工作的其他任何代码。 – Wyzard 2014-12-13 15:37:14

+0

我更新的问题 – ali 2014-12-13 15:41:51

+0

使用'UFT-8 persian'而不是'一般-ci' – 2014-12-13 15:48:15

回答

3

看来你正在使用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 one对于弃用mysql使用this answer。此外,不要忘记使用utf8-persian-ci集合。

在你html如果你有一个表格,设置accept-charsetUTF-8

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

谢谢,先生! – ali 2014-12-13 16:14:07

+0

谢谢。这是一个非常好的答案。 – 2016-02-19 07:25:01