Java 用库尔德字体存储MySQL数据?

Java 用库尔德字体存储MySQL数据?,java,mysql,unicode,phpmyadmin,Java,Mysql,Unicode,Phpmyadmin,大家好,我已经用java开发了一个应用程序,它允许用户在MySQL数据库中存储数据。每当我进入这个‌رواری ده‌我刚刚得到什么??????。我有什么办法可以解决这个问题吗?在明天之前完成这项工作真的很重要。。。我从来没有遇到过这样的问题,现在我正在为库尔德斯坦的一家公司创建一个数据库应用程序,现在我的朋友问我,它能用他们的角色存储数据吗?心脏病发作!请帮忙 我使用XAMPP在本地主机上使用PhpMyadmin发生了什么: 您有utf8编码的数据(良好) SET NAMES拉丁语1已生效(

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

我使用XAMPP在本地主机上使用PhpMyadmin发生了什么:

  • 您有utf8编码的数据(良好)
  • SET NAMES拉丁语1
    已生效(默认,但错误)
  • 列被声明为
    字符集latin1
    (默认值,但错误)
当您插入数据时,数据被转换为拉丁文1,它没有阿拉伯语(库尔德语/波斯语/等)字符的值,因此问号取代了它们

治疗方法(用于将来插入的
):

  • utf8编码数据(良好)
  • mysqli\u set\u字符集('utf8')
    (或客户建立
    字符集所需的任何内容
  • 检查列和/或表格默认值是否为字符集utf8
  • 如果您正在网页上显示,
    应该靠近顶部
上面的讨论是关于字符集的编码。现在了解有关排序规则的提示,它用于比较和排序

要再次检查数据是否正确存储,请执行以下操作
选择列,十六进制(列).

ه‌:/code>应该返回
D987E2808CD8B1DA86D988D988D988D988D986

utf8中的阿拉伯字符具有D8xx或D9xx的十六进制

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


坏消息:插入并转换为“?”的数据无法恢复。

将下面的代码放入
连接
PHP文件,然后将phpmyadmin(mysql)中的排序规则设置为utf8\u general\u ci或utf8\u unicode\u 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");
?>

您使用的是unicode吗?您是否使用正确的字符编码存储和读取数据?什么是正确的字符编码?是的,我使用的是UTF8\uUnicode\uCII,我的意思是,在读和写的时候,你们必须和编码保持一致。表示mysql 5.0支持这些阿拉伯语字符。请发布一个显示此行为的帖子,以及表的create语句。好的,我刚刚设法使我的mysql数据库能够处理库尔德字符,但仍然存在一个问题。每当我尝试通过phpmyadmin添加新数据时,似乎没有问题,但我在那里构建的java应用程序存在问题。不过,有一个问题,mysql服务器的排序规则与表中存储的数据相同。utf8mb4,也就是说,但我不能比较4字节的字符串,只有3个…每个阿拉伯字符占用2个字节
D987
为十六进制,表示2个字节。如果
字符集
utf8
,请使用
排序规则utf8\u unicode\u ci
。对于
字符集utf8mb4
,请使用排序规则utf8mb4\u unicode\u ci