mysql数据库中的波斯字符问题

时间:2013-12-11 12:45:03

标签: php mysql persian

当我将波斯数据插入数据库时​​,数据将保存为:†Ø¯Ø± 50 لیتری

但是当我从数据库中读取数据并在网络上回显时,它们就是好的。

我需要直接读取数据库中的数据。 你的解决方案是什么?

Mysql设置:

  

服务器连接排序规则:UTF8_general_ci

     

Html文件字符集是utf8。

5 个答案:

答案 0 :(得分:5)

我有同样的问题,这段代码:mysqli_set_charset($con, "utf8");解决了我的问题!

答案 1 :(得分:2)

你应该使用这段代码

$yourConnection->set_charset("utf8");

例如

function insertUser($inUN,$inP,$inFN,$inLN,$inE,$inD)
    {   
        $servername="localhost";
        $username="mnr";
        $password="milad1373";
        $databacename="mnr01";

        $conn = new mysqli($servername, $username, $password, $databacename);
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        } 
        $conn->set_charset("utf8");

        $sql = "INSERT INTO chuser (username, passWord, fname,lname,email,date)
        VALUES ('$inUN', '$inP','$inFN','$inLN', '$inE','$inD')";
        if ($conn->query($sql) === TRUE) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }

        $conn->close();
    }

我遇到了这个问题,但是这个代码已经解决了 有关更多信息,请转至this link

答案 2 :(得分:1)

确保您已执行

SET character_set_results=utf8

SET NAMES 'utf8'
发送任何INSERT命令之前

有关详细信息,请查看此问题。我认为这可能会有所帮助;

答案 3 :(得分:0)

解决:

连接

<?php
 $dbLink = mysql_connect($argHost, $argUsername, $argPassword);
    mysql_query("SET character_set_results=utf8", $dbLink);
    mb_language('uni'); 
    mb_internal_encoding('UTF-8');
    mysql_select_db($argDB, $dbLink);
    mysql_query("set names 'utf8'",$dbLink);
?>

源: PHP mysql charset utf8 problems

答案 4 :(得分:0)

您应在phpmyadmin中将排序规则更改为utf8_unicode_ci

  1. 将您设为您的localhost / phpmyadmin
  2. 选择数据库
  3. 在数据库旁边有一个小图标,点击该图标
  4. 点击更改
  5. 将排序规则更改为utf8_unicode_ci
  6. 将此代码插入到您的php文件中。
if (!$connection->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
    exit();
} else {
    printf("Current character set: %s\n", $connection->character_set_name());
}