Tud*_*scu 3 mysql jdbc clojure utf-8
我有一个带有两个UTF-8表的Mysql数据库.我们称之为源和目的地.
使用clojure.java.jdbc我成功地从Source中检索了一个字段,该字段包含'ă'符号.在尝试将该字符串保存在Destination中时,我发现'?' 在'ă'符号所在的地方.
这是实际保存记录的序列:
(jdbc/update-or-insert-values
"destination"
["lexeme = ?" word]
record)
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么会这样?
如果您使用了Wiki中的示例,那么缺少一个显而易见的事情就是设置连接编码.如果你没有发现这里是未经测试的编码示例:
(use 'clojure.java.jdbc)
(let [db-host "localhost"
db-port 3306
db-name "a_database"]
(def db {:classname "com.mysql.jdbc.Driver" ; must be in classpath
:subprotocol "mysql"
:subname (str "//" db-host ":" db-port "/" db-name "?characterEncoding=UTF-8")
; Any additional keys are passed to the driver
; as driver-specific properties.
:user "a_user"
:password "secret"}))
Run Code Online (Sandbox Code Playgroud)