UTF-8没有按应有的方式表示数据


UTF-8 not representing data as it should

我需要在MySQL数据库中插入克罗地亚字符。

我几乎做了所有的事情,但当我想插入一些克罗地亚字符时,我仍然有问题。

到目前为止我做了什么:

  1. 我已经下载并安装了MySQL Server 5.6,希望我能看到克罗地亚语的排序规则,但我找不到它
  2. 我已经设置了整个数据库和UTF8默认排序规则上的每一列
  3. 我已经将其放入我的php脚本中:header("Content-Type: text/html;charset=utf-8");
  4. 我试过所有的组合,比如(把所有东西都设置在cp1250上,拉丁语2克罗地亚语ci(,但仍然没有运气

插入数据库的一些输入是:æèæžš,它应该是ćčćžš。。这只是为了测试。。。

有人知道我下一步能做什么吗?我真的希望这类问题能有某种解决方案。

我确信,当我们谈论MySQL数据库中的克罗地亚字符时,很多人都和我一样碰壁了。

编辑:插入代码(这只是为了测试,所以简化了(

<?php
header("Content-Type: text/html;charset=utf-8");
$con=mysqli_connect("127.0.0.1:3306","root","admin","test");
 if (!$con)
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
 $sql="INSERT INTO test(test) VALUES('ćčćžš')";
 if (!mysqli_query($con,$sql))
      {
            die('Error: ' . mysqli_error($con));
      }else 
      {
        print '<script type="text/javascript">alert("ok")</script>';
      }
    mysqli_close($con);
?>

要正确读取UTF-8字符,您可以创建这样的表:

create table patient(
/* your columns  */
)character set utf8 collate utf8_unicode_ci;

并通过在php:中添加set_charset('utf8')来插入/检索您的数据

$mysqli=new mysqli($host,$user,$password,$database);
$mysqli->set_charset('utf8');
if(mysqli_connect_errno()){
    echo 'Could not connect to database. Error: '.mysqli_connect_error();
    exit();
}
$query="select * from YOURTABLE";
$result=$mysqli->query($query);
if($result->num_rows>0){
    while($row=$result->fetch_assoc()){
        //reading $row data
    }
    $result->close();
}
$mysqli->close();

此外,请记住将html字符集设置为UTF-8:

<meta charset="UTF-8">

对于克罗地亚do:

  1. 数据库中的表必须是utf8_general_ci
  2. 您的文件必须保存为utf8 (without BOM)
  3. 使用PHP连接到数据库后,添加此query('SET NAMES utf8');
  4. 在文档<head>标记中添加<meta charset="utf-8" />

经过测试,它有效(克罗地亚(。

živio