Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CSV到H2-字符编码不匹配_Java_Linux_Windows_Csv_H2 - Fatal编程技术网

Java CSV到H2-字符编码不匹配

Java CSV到H2-字符编码不匹配,java,linux,windows,csv,h2,Java,Linux,Windows,Csv,H2,在我的应用程序中,我: 让Hibernate创建h2db 使用CSV导入通过JDBC SQL语句填充数据库(插入到…选择…从CSVREAD(file.CSV))。文件采用UTF-8编码 在Linux上,数据库中的特殊字符是正确的 在Windows(默认编码cp1250)上,特殊字符不正确 当我尝试不同的CSV文件编码(cp1250,iso-8859-2)时,它可以在Windows上工作,但不能在Linux上工作 有没有办法告诉H2它需要遵守Windows上的UTF-8编码?需要在中设置UTF

在我的应用程序中,我:

  • 让Hibernate创建h2db
  • 使用CSV导入通过JDBC SQL语句填充数据库(
    插入到…选择…从CSVREAD(file.CSV)
    )。文件采用UTF-8编码
在Linux上,数据库中的特殊字符是正确的

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

当我尝试不同的CSV文件编码(cp1250,iso-8859-2)时,它可以在Windows上工作,但不能在Linux上工作


有没有办法告诉H2它需要遵守Windows上的UTF-8编码?

需要在中设置UTF-8,如下所示:

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

您正在使用Eclipse吗?默认情况下,Windows中Eclipse中的Java项目使用不同的编码。在项目首选项中将其更改为UTF8可能会解决您的问题。您是如何准确地使用
CSVREAD
的?您是否使用了
CSVREAD('file.csv',null,'charset=UTF-8')
?谢谢Thomas,它成功了。我只在函数帮助页面中搜索,没有语法。@dunadan谢谢!我补充了一个答案。