POST西里尔字母PHP导致特殊字符

时间:2016-11-02 00:03:56

标签: php mysql .htaccess

西里尔文字母在db。中作为规范符号发布。

这是我的PHP代码

    <?php 
    header('Content-Type: text/html; charset=utf-8');
    include("../connection.php");
    $data = json_decode(file_get_contents("php://input"));
    $address = "Коля";
    $description = $data->description;
    $alt = $data->lat;
    $lon= $data->lng;
    $q = "INSERT INTO pitches (address, description,alt,lon) VALUES (:address, :description,:alt,:lon)";
    $query = $db->prepare($q);
    $execute = $query->execute(array(
        ":address" =>  $address,
        ":description" => $description,
        ":alt"=>$alt,
        ":lon"=>$lon

    ));
    echo mb_detect_encoding($description);

    ?>

此外,我已使用AddDefaultCharset UTF-8将.htaccess文件添加到我的网站的根目录

以下是来自phpmyadmin的截图: enter image description here

我到处都有utf8编码,但我的php仍然发布了这样的数据КолÑ。我已经尝试了所有我知道但无法理解错误的东西。

echo mb_detect_encoding($ description)向我展示了ANSII,
echo mb_detect_encoding($ address)显示UTF-8 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

你试过mysql set charset吗?

<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

// Change character set to utf8
mysqli_set_charset($con,"utf8");

mysqli_close($con);
?>
相关问题