1

我正在 Groovy 中编写一个脚本,该脚本需要存储(并稍后检索)包含捷克字符(例如 č、š、í、ě、...)的数据。

我使用标准的 JDBC 连接,例如

def sql = Sql.newInstance(
    'jdbc:mysql://localhost/db', 
    'root',
    '', 
    'com.mysql.jdbc.Driver'
);

sql.executeInsert(
    'INSERT INTO ... VALUES ...', [ ... ]
);

我已经为 64 位 Windows 机器下载了最新的 MySQL ZIP 存档并将其解压缩到我的本地硬盘上。mysqld我现在通过从命令行手动启动来运行它(用于测试目的) 。

当我存储和检索数据时,某些捷克符号已损坏(显示的是?s 而不是它们)。我相信数据库使用错误的编码。我希望脚本能够处理 UTF-8 编码的数据。

我在互联网上找到了很多(相互不同的)关于如何设置 MySQL 以处理 UTF-8 数据的信息。不过,它们都不适合我。

您能否为我的具体用例提供说明?

4

1 回答 1

2

只要您的 db/table/column 设置为 use UTF-8,您就可以尝试将连接参数更改为:

def sql = Sql.newInstance(
    'jdbc:mysql://localhost/db?useUnicode=true&characterEncoding=UTF-8', 
    'root',
    '', 
    'com.mysql.jdbc.Driver'
)
于 2013-08-06T11:39:19.963 回答