iteye_14529
iteye_14529
2009-09-15 09:16
浏览 345
已采纳

java读取excel时法文出现乱码

我需要用程序读取excel中的数据,并将其导入到数据库中,
但是excel中出现了如 Der Alpenjäger 中"ä"这样的法文字符,导致用jxl获取值
Workbook rwb = Workbook.getWorkbook(new File(attachmentFilePath), workbookSettings);
Sheet sheet = rwb.getSheet(0);
Cell[] cell = sheet.getRow(0);
String str = cell[0].getContents();
后得到的是乱码,进而写入mysql也是乱码

我mysql用的编码是utf8,直接在mysql中写入"ä"不会出现问题;
我用Eclipse开发,执行Sql="insert into table (name) values('ä')"也没用问题;

各位大大,帮忙想想办法啦
[b]问题补充:[/b]
以上几位说的我都试过了

还是不行啊

excel是用的什么编码啊?
[b]问题补充:[/b]
new String(str.getBytes("GBK"),"utf-8")

workbookSettings.setEncoding("ISO-8859-1");
试过了 还是乱码
[b]问题补充:[/b]
workbookSettings.setEncoding("ISO-8859-1");
new String(str.getBytes("ISO-8859-1"),"utf-8")

我就是这么设置的 可是不行啊

excel是用的utf-16编码?
难道要new String(str.getBytes("utf-16"),"utf-8") ?
[b]问题补充:[/b]
试了无数种编码转换 竟然都不行

wjm251说的方法我再试试

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • wjm251
    wjm251 2009-09-15 11:05
    已采纳

    http://jiemyonline.blog.sohu.com/53774941.html
    看看这个是否有帮助

    不过他提了个思路 ,下载源码然后跟踪调试----------
    我这边也不方便搞环境了,不方便帮你调

    点赞 评论
  • wjm251
    wjm251 2009-09-15 09:27

    String str = cell[0].getContents();
    这个恐怕是被自动用gbk编码了。

    看看getContents有没有指定编码格式的参数,
    或者这样试试

    new String(str.getBytes("GBK"),"utf-8")

    点赞 评论
  • iteye_9008
    iteye_9008 2009-09-15 09:28

    学习ing

    点赞 评论
  • jfccfj
    jfccfj 2009-09-15 10:23

    workbookSettings.setEncoding("ISO-8859-1");
    设置一下,读取数据的编码

    点赞 评论
  • wjm251
    wjm251 2009-09-15 10:34

    我用python处理过excel,excel是utf-16的

    点赞 评论
  • wjm251
    wjm251 2009-09-15 10:37

    workbookSettings.setEncoding("ISO-8859-1");
    new String(str.getBytes("ISO-8859-1"),"utf-8")

    这样结合起来呢?

    点赞 评论
  • weixin_42517818
    weixin_42517818 2009-09-15 10:56

    可以肯定的是编码不同引起的问题,可以试试多种编码转换。总会有一种方法是对的。

    点赞 评论
  • jfccfj
    jfccfj 2009-09-15 10:58

    你新建一个excel测试一下,或者把这个excel另存一下。读取excel一般不需要进行编码转换的,估计是文件本身的问题。

    点赞 评论

相关推荐