以库尔德字体存储数据 MySQL?

Storing data MySQL in Kurdish font?

您好,我在 java 中创建了一个应用程序,允许用户将数据存储在 MySQL 数据库中。每当我输入这个 به‌رواری ده‌رچوون 我只是得到 ??????。有什么办法可以解决这个问题吗?在明天之前完成这项工作真的很重要......我从来没有遇到过这样的问题,现在我正在为库尔德斯坦的一家公司创建数据库应用程序,现在我的朋友问,它存储数据吗与他们的角色?心脏病发作!请帮忙!

我在本地主机计算机上使用 PhpMyadmin XAMPP

发生了什么:

  • 你有 utf8 编码的数据(好)
  • SET NAMES latin1 生效(默认,但错误)
  • 列已声明 CHARACTER SET latin1(默认,但错误)

当您 INSERTed 数据时,它被转换为 latin1,它没有阿拉伯语 (Kurdish/Farsi/etc) 字符的值,因此用问号代替了它们。

治疗方法(为将来INSERTs):

  • utf8编码数据(好)
  • mysqli_set_charset('utf8')(或您的客户建立 CHARACTER SET 所需的任何内容)
  • 检查列 and/or table 默认为 CHARACTER SET utf8
  • 如果您在网页上展示,<meta...utf8> 应该靠近顶部。

上面讨论的是CHARACTER SET,字符的编码。现在关于 COLLATION 的提示,用于比较和排序。

要仔细检查数据是否正确存储,请执行 SELECT col, HEX(col)....
ه‌رچوون应该回来D987E2808CD8B1DA86D988D988D986
utf8 中的阿拉伯字符具有 D8xx 或 D9xx 的十六进制。

utf8mb4utf8 一样有效;两者都适用于阿拉伯语。)

坏消息:插入的数据变成'???'无法恢复。

将以下代码放入 connection PHP 文件中,然后在 phpmyadmin (mysql) 中将排序规则设置为 utf8_general_ci 或 utf8_unicode_ci:

<?php
$servername="localhost";
$username="root";
$password="";
$databasename="ab1";
$conn = new mysqli($servername, $username, $password, $databasename);
if ($conn->connect_error) {
die("connection failed" .$conn->connect_error);
}else
echo "connection sucssessfullly";
$conn->query("SET NAMES 'utf8'");
$conn->query("SET CHARACTER SET utf8");
?>