gpt4 book ai didi

java - Java Web 框架(Ninja 和 Spark 框架)出现 MySQL unicode 错误

转载 作者:行者123 更新时间:2023-11-30 00:11:49 28 4
gpt4 key购买 nike

我首先使用Spark框架和ORMLite处理网页上表单提交的数据,在提交中文字符时看到了unicode问题。我首先想到问题可能是由于ORMLite,因为我的MySQL数据库的字符集已设置为使用utf8_general_ci

因此我尝试使用Ninja框架使用相同的MySQL数据表提交相同的表单,但是,出现了相同的问题。汉字竟然是“???” (数据库字段中的一串问号)。

在我的玩具程序中,我有一个名为“Book”的模型类,它具有三个实例变量:

Long id;
String author;
String title;

因此,html 表单只有两个输入字段:作者和标题。

我在 BookDAO 类中编写了以下方法,并使用 Hibernate 将数据保存到 MySQL 中:

    @Transactional
public boolean postBook(String author, String title)
{
EntityManager entityManager = entityManagerProvider.get();

Book book = new Book(author, title);
entityManager.persist(book);

return true;
}

我尝试将mysql的字符集更改为gbk(中文字符编码),但仍然没有成功。我注意到的另一件事是编码错误只发生在我的 Ubuntu 服务器上,而不是发生在我的 Mac 服务器上。这让我思考这两个操作系统的差异导致了我的 MySQL 问题。

最佳答案

通过执行以下任一操作解决了我的编码问题。两种方法都需要重启mysql

  1. 登录mysql终端:

    >mysql -uroot -p
    mysql>use mydb;
    mysql>alter database mydb character set utf8;

或者执行以下操作来永久更改 MySQL 的字符集:

  1. 编辑 my.cnf:

> sudo vim/etc/mysql/my.cnf

将以下条目添加到 my.cnf

[client]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

关于java - Java Web 框架(Ninja 和 Spark 框架)出现 MySQL unicode 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23982939/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com