W***o 发帖数: 6519 | 1 我用Ninja framework处理提交的form data, 测试用的model是 Book (author; title)
,所以对应的数据表里只有三个fields: id, author, title
相对应的的form表单里的field所以就只有两个: author, title
我自己写了一个DAO, 对应存储的是下面这个postBook方法;在我的controller 类里面
我capture submitted form data, 然后就是call postBook(author, title); 而且用
System.out.println("author = " + author + ", title = " + title) 确认提交的表
单数据,在terminal里可以看到打印出来的中文字,所以我觉得乱码问题可能出现在
hibernate 存储 MySQL的过程。
更奇怪的是,这个乱码问题只出现在Linux server上(Ubuntu),在我的Mac Server上
没有这个问题。数据库charset设置是 utf8_general_ci,也试过了gbk中文charset,都
不行,总是有乱码。 请教一下会是什么原因呢? 谢谢了
@Transactional
public boolean postBook(String author, String title)
{
EntityManager entityManager = entityManagerProvider.get();
Book book = new Book(author, title); /* new book */
entityManager.persist(book); /* persist it in database */
return true;
} | g*****g 发帖数: 34805 | 2 通常不过几个地方,app server encoding, MySQL encoding, MySQL connection
String.
不过app server写个单元测试存个中文进数据库就能确认是哪个得问题。
title)
【在 W***o 的大作中提到】 : 我用Ninja framework处理提交的form data, 测试用的model是 Book (author; title) : ,所以对应的数据表里只有三个fields: id, author, title : 相对应的的form表单里的field所以就只有两个: author, title : 我自己写了一个DAO, 对应存储的是下面这个postBook方法;在我的controller 类里面 : 我capture submitted form data, 然后就是call postBook(author, title); 而且用 : System.out.println("author = " + author + ", title = " + title) 确认提交的表 : 单数据,在terminal里可以看到打印出来的中文字,所以我觉得乱码问题可能出现在 : hibernate 存储 MySQL的过程。 : 更奇怪的是,这个乱码问题只出现在Linux server上(Ubuntu),在我的Mac Server上 : 没有这个问题。数据库charset设置是 utf8_general_ci,也试过了gbk中文charset,都
| W***o 发帖数: 6519 | 3 我在app server里的controller类里,在存进数据库之前,我把将要存储的记录打印到
STDOUT了,中文显示没问题,可是一到mysql里就出现乱码 (一串??????)
【在 g*****g 的大作中提到】 : 通常不过几个地方,app server encoding, MySQL encoding, MySQL connection : String. : 不过app server写个单元测试存个中文进数据库就能确认是哪个得问题。 : : title)
| i**i 发帖数: 1500 | 4 也许是mysql配置问题。
http://dev.mysql.com/doc/refman/5.7/en/charset.html
放狗一搜:
https://www.google.com/webhp?sourceid=chrome-instant&rlz=1C1GPCK_
enUS416US416&ion=1&espv=2&es_th=1&ie=UTF-8#q=mysql%20%E4%B8%AD%E6%96%87%E9%
85%8D%E7%BD%AE
????一般是utf8. 怪字符是gb2312. | W***o 发帖数: 6519 | 5 谢谢,问题解决了!
参考了这篇文章一劳永逸的做法:
http://www.pc6.com/infoview/Article_63586.html
【在 i**i 的大作中提到】 : 也许是mysql配置问题。 : http://dev.mysql.com/doc/refman/5.7/en/charset.html : 放狗一搜: : https://www.google.com/webhp?sourceid=chrome-instant&rlz=1C1GPCK_ : enUS416US416&ion=1&espv=2&es_th=1&ie=UTF-8#q=mysql%20%E4%B8%AD%E6%96%87%E9% : 85%8D%E7%BD%AE : ????一般是utf8. 怪字符是gb2312.
|
|