gpt4 book ai didi

java - 如何将 List 值从 UTF-8 转换为 String?

转载 作者:行者123 更新时间:2023-12-01 18:29:19 24 4
gpt4 key购买 nike

我想将一些希腊文本从 UTF-8 转换为字符串,因为 Java 无法识别它们。然后,我想将它们填充到 JTable 中。所以我使用 List 来帮助我。下面是我的代码片段:

String[][] rowData;
List<String[]> myEntries;
//...
try {
this.fileReader = new FileReader("D:\\Book1.csv");
this.reader = new CSVReader(fileReader, ';');
myEntries = reader.readAll();

//here I want to convert every value from UTF-8 to String
convertFromUTF8(myEntries); //???

this.rowData = myEntries.toArray(new String[0][]);
} catch (FileNotFoundException ex) {
Logger.getLogger(VJTable.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(VJTable.class.getName()).log(Level.SEVERE, null, ex);
}
//...

我创建了一个方法

public String convertFromUTF8(List<String[]> s) {
String out = null;
try {
for(String stringValues : s){
out = new String(s.getBytes("ISO-8859-1"), "UTF-8");
}
} catch (java.io.UnsupportedEncodingException e) {
return null;
}
return out;
}

但我无法继续,因为 List 没有 getBytes() 方法。我应该怎么办。任何想法都会非常有帮助。预先感谢您。

最佳答案

问题是您使用的 FileReader 只支持“默认”字符集:

this.fileReader = new FileReader("D:\\Book1.csv");

FileReader 的 javadoc对此非常明确:

The constructors of this class assume that the default character encoding and the default byte-buffer size are appropriate. To specify these values yourself, construct an InputStreamReader on a FileInputStream.

获取指定字符集的 Reader 的适当方法如下:

this.fileStream = new FileInputStream("D:\\Book1.csv");
this.fileReader = new InputStreamReader(fileStream, "utf-8");

关于java - 如何将 List<String[]> 值从 UTF-8 转换为 String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24984718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com