【问题标题】:CSV to H2 - character encoding missmatchCSV 到 H2 - 字符编码不匹配
【发布时间】:2013-05-14 06:47:44
【问题描述】:

在我的应用中,我:

  • 让 Hibernate 创建 H2 DB
  • 使用 CSV 导入 (INSERT INTO ... SELECT ... FROM CSVREAD(file.csv)) 通过 JDBC SQL 语句填充数据库。文件采用 UTF-8 编码。

在 Linux 上,数据库中的特殊字符是正确的。

在 Windows 上(默认编码 cp1250)特殊字符不正确。

当我尝试不同的 CSV 文件编码(cp1250、iso-8859-2)时,它适用于 Windows,但不适用于 Linux。

有没有办法告诉 H2 它需要在 Windows 上尊重 UTF-8 编码?

【问题讨论】:

  • 您在使用 Eclipse 吗?默认情况下,Windows 中 Eclipse 中的 Java 项目使用不同的编码。在项目首选项中将其更改为 UTF8 可能会解决您的问题。
  • 你是如何使用CSVREAD的?你用过CSVREAD('file.csv', null, 'charset=UTF-8')as documented吗?
  • 谢谢托马斯,它成功了。我只在函数帮助页面中搜索,而不是语法。
  • @dunadan 谢谢!我已经添加了答案。

标签: java linux windows csv h2


【解决方案1】:

UTF-8需要在options parameter of the CSVREAD function中设置,如下:

CSVREAD('file.csv', null, 'charset=UTF-8')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多