mysql字符集 俄文_Java – 使用PreparedStatement在mysql数据库中存储UTF-8字符(特别是俄语字符)...

使用准备好的语句我试图将俄语字符存储在特定表的字段中.表和字段使用utf8字符集和utf8_bin排序规则.

如果我通过IDE或命令行手动运行插入,则字符串将按预期保存.

INSERT INTO utf8Table VALUES('Анатолий Солоницын');

然后,我可以查询该表,并且还可以返回预期的String.

通过tomcat的context.xml文件中的资源设置Connection,其中包含以下配置:

sql.DataSource"

driverClassName="com.MysqL.jdbc.Driver"

useUnicode="true"

characterEncoding="UTF8"

....

正如我所说,我能够很好地读取字符串/字符,所以我假设表和连接设置都正确设置.

我通过以下方式使用PreparedStatement / CallableStatement:

CallableStatement callableStmt = __MysqLConnector.getConnection().prepareCall("INSERT INTO utf8Table VALUES(?)");

callableStmt.setString(1,"Анатолий Солоницын");

callableStmt.executeUpdate();

什么是插入数据库而不是АнатолийСолоницын:???????? ?????????

Also note that “normal” utf-8 strings,such as über,are getting saved

properly.

System.getProperty("file.encoding")

java.nio.charset.Charset.defaultCharset().name()

也都返回UTF-8.

任何帮助表示赞赏.谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值