从Java ResultSet读取Unicode文本

时间:2010-06-23 12:33:27

标签: java unicode jdbc

如何从java结果集中读取unicode文本?

3 个答案:

答案 0 :(得分:3)

rs.getString()返回一个Java String,根据定义,它是Unicode。

如果您遇到损坏的字符,则必须配置数据库驱动程序以使用正确的编码来连接数据库。

答案 1 :(得分:2)

阅读字符串。 Java中的所有字符串都是unicode。如果您遇到问题,那么:

  • 这可能是一个诊断问题 - 您可能正在从ResultSet中读取正确的数据但显示它以使看起来就像您没有正确阅读一样
  • 这可能是配置问题 - 连接到数据库时可能需要执行某些操作以确定要使用的正确编码
  • 可能是数据库问题 - 数据库可能未配置为存储完整的Unicode数据
  • 可能是数据库架构问题 - 您使用的特定列可能使用不支持完整Unicode的列类型进行配置
  • 这可能是数据中的问题,例如与另一个程序错误地提交数据。

我之前见过所有这些。您应该使用详细的日志记录(例如单个字符,以十六进制表示)来确定您是否正确获取数据 - 这将告诉您下一步的位置。

答案 2 :(得分:1)

如果您使用的是DataSource(f.e。com.mysql.jdbc.jdbc2.optional.MysqlDataSource),您可以直接将频道编码设置为UTF8,如ds.setEncoding("UTF-8")