首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >希伯来语编码从CSV到都是垃圾

问希伯来语编码从CSV到都是垃圾
EN

Stack Overflow用户
提问于 2013-11-13 14:38:36
回答 1查看 373关注 0票数 1

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

我使用扫描器将它放入我的Java代码中,同时将其编码为UTF-8:

代码语言:javascript
复制
File file = new File(System.getProperty("user.dir") + System.getProperty("file.separator") + fileName);
Scanner scanner = new Scanner(new FileInputStream(file), "UTF-8");

然后使用Hibernate解析并将其发送到MySql数据库:

代码语言:javascript
复制
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);
    }
}

Eclipse中的打印输出和进入MySql的输入都是以?的形式出现的。

搜索解决方案时,我尝试将字符串转换为字节:

代码语言:javascript
复制
byte[] ptext = client[j].getBytes("UTF8");
String value = new String(ptext, "UTF-8"); 

我将MySql表转换为字符集UTF-8Unicode和排序规则utf8mb4_general_ci。

但似乎什么都起不到作用。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-13 15:01:01

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

代码语言:javascript
复制
Scanner scanner = new Scanner(new FileInputStream(file), "UTF-8");

现在,我假设您在eclipse中看到了正确编码的字符。

由于您正在使用Hibernate和MySql,所以您应该将以下内容添加到hibernate配置中:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19956560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档