以库尔德字体存储数据 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 的十六进制。
(utf8mb4
与 utf8
一样有效;两者都适用于阿拉伯语。)
坏消息:插入的数据变成'???'无法恢复。
将以下代码放入 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");
?>
您好,我在 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 的十六进制。
(utf8mb4
与 utf8
一样有效;两者都适用于阿拉伯语。)
坏消息:插入的数据变成'???'无法恢复。
将以下代码放入 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");
?>