Java 从CSV到Eclipse再到MySql的希伯来文编码都是垃圾

Java 从CSV到Eclipse再到MySql的希伯来文编码都是垃圾,java,mysql,eclipse,hibernate,character-encoding,Java,Mysql,Eclipse,Hibernate,Character Encoding,我有一个带有希伯来文字符的CSV文件。当我在Mac上用TextEdit打开它时,我可以很好地看到希伯来语 我使用扫描仪将其输入Java代码,同时将其编码为UTF-8: File file = new File(System.getProperty("user.dir") + System.getProperty("file.separator") + fileName); Scanner scanner = new Scanner(new FileInputStream(file), "UTF-

我有一个带有希伯来文字符的CSV文件。当我在Mac上用TextEdit打开它时,我可以很好地看到希伯来语

我使用扫描仪将其输入Java代码,同时将其编码为UTF-8:

File file = new File(System.getProperty("user.dir") + System.getProperty("file.separator") + fileName);
Scanner scanner = new Scanner(new FileInputStream(file), "UTF-8");
然后我解析,并使用Hibernate将其发送到MySql数据库:

for(int i=0; i<elements.length; i++) {

    String elem = elements[i];
    String[] client = elem.split(",");

    for(int j=0; j<client.length; j++) {
        Client c = new Client();
        c.setFirstName(client[j]);
        System.out.println(client[j]);
        DatastoreManager.persist(c);
    }
}
我将MySql表转换为字符集UTF-8 Unicode和排序规则utf8mb4\u general\u ci


但似乎什么都不管用。有什么想法吗

在mac中使用file-I{filename}检查编码。 您在中得到更改的编码:

Scanner scanner = new Scanner(new FileInputStream(file), "UTF-8");
现在我假设您在eclipse中看到了正确编码的字符

由于您使用的是Hibernate和MySql,您应该在Hibernate配置中添加以下内容:

app_persistance.connection.url=jdbc:mysql://localhost:3306/yourDatabase?useUnicode=true&amp;characterEncoding=utf-8
app_persistance.hibernate.connection.CharSet=utf8
app_persistance.hibernate.connection.characterEncoding=utf8
app_persistance.hibernate.connection.useUnicode=true

在mac中使用file-I{filename}检查编码。 您在中得到更改的编码:

Scanner scanner = new Scanner(new FileInputStream(file), "UTF-8");
现在我假设您在eclipse中看到了正确编码的字符

由于您使用的是Hibernate和MySql,您应该在Hibernate配置中添加以下内容:

app_persistance.connection.url=jdbc:mysql://localhost:3306/yourDatabase?useUnicode=true&amp;characterEncoding=utf-8
app_persistance.hibernate.connection.CharSet=utf8
app_persistance.hibernate.connection.characterEncoding=utf8
app_persistance.hibernate.connection.useUnicode=true

您的Eclipse控制台似乎不支持UTF-8字符编码。原始文件的编码是什么?我建议您阅读这篇文章,它提供了对编码Luiggi的一般理解,如何更改它以使控制台支持UTF-8?马克,我不确定,我怎么检查?该文件太大,Excel无法打开它,因此我只能使用TextEdit查看它。请在mac中使用file-I{filename}检查编码。您的Eclipse控制台似乎不支持UTF-8字符编码。原始文件的编码是什么?我建议您看一看这篇文章,这篇文章对编码Luiggi有一个大致的了解,如何更改它以使控制台支持UTF-8?马克,我不确定,我怎么检查?该文件太大,Excel无法打开它,因此我只能使用TextEdit查看它。请在mac中使用file-I{filename}检查编码。谢谢,添加useUnicode=true&;characterEncoding=utf-8。mac中的文件-I{filename}如何检查编码。是的,它是utf-8。谢谢:)谢谢,添加useUnicode=true&;characterEncoding=utf-8。mac中的文件-I{filename}如何检查编码。是的,它是utf-8。谢谢:)