我需要用程序读取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说的方法我再试试
http://jiemyonline.blog.sohu.com/53774941.html
看看这个是否有帮助
不过他提了个思路 ,下载源码然后跟踪调试----------
我这边也不方便搞环境了,不方便帮你调
String str = cell[0].getContents();
这个恐怕是被自动用gbk编码了。
看看getContents有没有指定编码格式的参数,
或者这样试试
new String(str.getBytes("GBK"),"utf-8")
学习ing
workbookSettings.setEncoding("ISO-8859-1");
设置一下,读取数据的编码
我用python处理过excel,excel是utf-16的
workbookSettings.setEncoding("ISO-8859-1");
new String(str.getBytes("ISO-8859-1"),"utf-8")
这样结合起来呢?
可以肯定的是编码不同引起的问题,可以试试多种编码转换。总会有一种方法是对的。
你新建一个excel测试一下,或者把这个excel另存一下。读取excel一般不需要进行编码转换的,估计是文件本身的问题。