gpt4 book ai didi

java - 如何从文件中读取 UTF-8 字符作为字节?

转载 作者:行者123 更新时间:2023-12-02 00:38:43 24 4
gpt4 key购买 nike

我无法从文件中以字节形式读取 UTF-8 字符。UTF-8 字符在从字节转换为字符时显示为 Questionmarak(?)。

下面的代码片段显示了文件读取。

请告诉我如何从文件中读取 UTF-8 字符。请告诉我字节数组读取过程有什么问题?

public static void getData {

FormFile file = actionForm.getFile("UTF-8");

byte[] mybt;
try
{

byte[] fileContents = file.getFileData();
StringBuffer sb = new StringBuffer();
for(int i=0;i<fileContents.length;i++){
sb.append((char)fileContents[i]);
}
System.out.println(sb.toString());
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}

Output ::??Docum??ents (input file content is : "ÞDocumÿents" , it contains some spanish characters. )

最佳答案

这就是问题:

for(int i=0;i<fileContents.length;i++){
sb.append((char)fileContents[i]);
}

只需通过强制转换即可将每个字节转换为字符。这实际上是使用 ISO-Latin-1。

要从 InputStream 读取文本,您可以通过 InputStreamReader 对其进行调整,并指定字符编码。

将整个文件读入字符串的最简单方法是使用 Guava :

String text = Files.toString(file, Charsets.UTF_8);

或者转换字节数组:

String text = new String(fileContents, "UTF-8");

关于java - 如何从文件中读取 UTF-8 字符作为字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6995685/

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