小编Use*_*709的帖子

奇怪的结果与字符编码

这是情景 -

  • DB2数据库位于大型机系统(z/OS)上
  • Web服务器在USS(z/OS的Unix部分)上运行,使用Spring JDBC运行Java代码
  • 我们测试过的浏览器和Windows 7上运行的客户端程序(默认编码是windows-1252)

我们有一个包含西班牙语字符(ú)的字符串,它使用Spring的JDBCTemplate存储在数据库中,因此基本上是JDBC.

  • 当使用JDBC客户端(Squirrel,用Java编写)查询时,它会显示为其他内容(ú).
  • 当使用示例JDBC程序查询并将结果打印为字符串时,它会显示为其他内容(ú).
  • 当使用示例JDBC程序查询并将结果打印为UTF-8编码的字符串[new String(str,"UTF-8")]时,它会正确显示(ú).
  • 使用此-Dfile.encoding = utf-8以UTF-8编码启动JVM时,结果将在上述两种情况下打印为其他内容(ú).
  • 运行应用程序前端的浏览器也将其显示为Ã,但HTML的内容标题设置为UTF-8.

在这个阶段我有点困惑,并有这些问题 -

  • 如果以UTF-8格式打印字符串特别有效,那么当JVM以UTF-8编码启动时,为什么它不起作用.
  • 在哪一层实际上可能发生问题,数据库还是JVM?

我应该在应用程序级别而不是列级别解决这个问题?

任何指针都会有所帮助.

java encoding utf-8

2
推荐指数
1
解决办法
588
查看次数

标签 统计

encoding ×1

java ×1

utf-8 ×1