我正在开发使用anorm访问我的数据库的Play应用程序。 所以这是我的application.conf
的一部分db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3306/bubusik?characterEncoding=UTF-8"
db.default.user=root
db.default.password="*********"
如果我删除了?characterEncoding=UTF-8
部分,那么任何不是英语的东西都会像????????? DB中的问号。
所以我想知道这个配置究竟是什么设置的?
请注意,我的数据库架构的默认字符集是UTF-8以及所有表格。
答案 0 :(得分:1)
配置文件的这一部分设置JDBC驱动程序,它将应用程序连接到数据库。 db.default.url用于设置与MySql数据库的连接。由于Play / Scala在Java虚拟机上运行,因此您的应用程序以UTF-16编码保存字符串。 characterEncoding参数定义数据库期望接收文本字符串的字符集。
那么?characterEncoding = UTF-8通知驱动程序代码在将JDBC请求发送到MySql之前需要将字符串从UTF-16映射到UTF-8。如果目标编码与数据库的编码不匹配,那么将使用错误的规则集解码JDBC请求中的字符串格式。
有关详细信息,请参阅:Using Character Sets and Unicode