Wil*_*ill 1 java mysql unicode utf-8
我有一个数据库MEDIUMBLOB与表中的字段ENGINE=InnoDB DEFAULT CHARSET=utf8上每个表.
我通过useUnicode=true&characterEncoding=UTF8&character_set_client=UTF8&character_set_database=UTF8&character_set_results=UTF8&character_set_server=UTF8&character_set_system=UTF8URL 连接到数据库.
(我尝试过useUnicode=true&characterEncoding=UTF8同样的结果.)
当我使用mysql命令行查看数据库中的值时,我可以看到非ASCII字符就好了.
但是当我从数据库读取字符串时,executeQuery() getString()我得到了胡言乱语.如何正确读取值?
我正在使用log4j来显示我写入数据库的字符串,以及我读回的字符串,以及我写的那些字符串.
这是一个BLOB,而不是一个字符串.所以你想getBytes手动解码它.
new String( bytes, "UTF-8"); //Subsitute "UTF-8" with whatever encoding the blob is in
Run Code Online (Sandbox Code Playgroud)
如果需要更透明的支持,请使用UTF-8定义一个mediumtext列.然后所有配置都将生效,并使用getString自动获得正确的字符串.