java – 读取文件和写入文件,其中包含UTF – 8(不同语言)的字符
发布时间:2020-05-24 09:37:40 所属栏目:Java 来源:互联网
导读:我有一个文件,其中包含如下字符:“Joh 1:1,”“”“”“”“”“ www.unicode.org/charts/PDF/U0B80.pdf 当我
|
我有一个文件,其中包含如下字符:“Joh 1:1,”“”“”“”“”“ www.unicode.org/charts/PDF/U0B80.pdf 当我使用以下代码时: bufferedWriter = new BufferedWriter (new OutputStreamWriter(System.out,"UTF8")); 输出是框和其他奇怪的字符,如下所示: “P = O;<一条Y;” 有人可以帮忙吗? 这些是完整的代码: File f=new File("E:bible.docx");
Reader decoded=new InputStreamReader(new FileInputStream(f),StandardCharsets.UTF_8);
bufferedWriter = new BufferedWriter (new OutputStreamWriter(System.out,StandardCharsets.UTF_8));
char[] buffer = new char[1024];
int n;
StringBuilder build=new StringBuilder();
while(true){
n=decoded.read(buffer);
if(n<0){break;}
build.append(buffer,n);
bufferedWriter.write(buffer);
}
StringBuilder值显示UTF字符,但在窗口中显示时,它显示为框. 找到问题的答案!!! 解决方法因为您的输出以UTF-8编码,但仍包含替换字符(U FFFD,),我相信当您读取数据时会出现问题.确保您知道输入流使用的编码,并根据InputStreamReader设置编码.如果那是泰米尔语,我猜它可能是UTF-8.我不知道Java是否支持TACE-16.它看起来像这样…… StringBuilder buffer = new StringBuilder();
try (InputStream encoded = ...) {
Reader decoded = new InputStreamReader(encoded,StandardCharsets.UTF_8);
char[] buffer = new char[1024];
while (true) {
int n = decoded.read(buffer);
if (n < 0)
break;
buffer.append(buffer,n);
}
}
String verse = buffer.toString(); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
