当前位置:  开发笔记 > 编程语言 > 正文

从Codepage 1252(Windows)转换为Java,Java

如何解决《从Codepage1252(Windows)转换为Java,Java》经验,为你挑选了1个好方法。

我有一些Java中的字符串(最初来自Excel工作表),我认为它在Windows 1252代码页中.我希望他们转换为Javas自己的unicode格式.如果重要的话,使用JXL包解析Excel文件.

我将澄清:显然,从Excel文件中获取的字符串看起来非常像它已经是某种unicode.

WorkbookSettings ws = new WorkbookSettings();
ws.setCharacterSet(someInteger);
Workbook workbook = Workbook.getWorkbook(new File(filename), ws);
Sheet s = workbook.getSheet(sheet); 
row = s.getRow(4);
String contents = row[0].getContents();

这里的内容似乎包含unicode,åäö是多字节字符,而ASCII是正常的单字节字符.绝对不是拉丁文1.如果我用printLn打印"contents"字符串并将其重定向到hello.txt文件,我发现字母"ö"用两个字节表示,C3 B6用十六进制表示.(十进制195和179)

[编辑]

我尝试了下面给出的不同代码页等的建议,尝试从Cp1252等转换.有某种转换,因为我会得到一些其他类型的乱码.作为参考,我总是在源代码中打印一个"ö"字符串,以验证我的终端或字体或任何东西没有问题.手动输入的"ö"始终有效.

[编辑]

我也按照评论中的建议尝试了WorkBookSettings,但我查看了JXL的代码,并且通过解析代码似乎忽略了characterSet.我认为解析代码只是查看XLS文件应该在的任何编码.



1> 小智..:

WorkbookSettings ws = new WorkbookSettings();

ws.setEncoding( "CP1250");

为我工作.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有