java-中文字符
2021-03-03 04:27
标签:package tst png rgs alt code 保存 显示 是什么 记事本中使用的编码方式是什么,在输出的时候就要设置成什么,比如记事本保存的方式是UTF-8,那么编程的时候就要设置成UTF-8格式,这样才能正确的显示结果。 java本身自带的编码方式是GBK,如果代码中第13行改写成String str=new String(bytes); 最后的显示结果就是乱码。当然,将记事本的保存方式也设置成GBK就不会出现乱码了。总之,编码方式要匹配才能正确地显示中文字符 java-中文字符 标签:package tst png rgs alt code 保存 显示 是什么 原文地址:https://www.cnblogs.com/wangqianming12138/p/14398530.html用FileInputStream 字节流正确读取中文
1 package IO流;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.IOException;
6
7 public class 读取中文 {
8 public static void main(String[] args) {
9 File f=new File("D://1.txt");
10 try(FileInputStream fs=new FileInputStream(f)){
11 byte[] bytes=new byte[(int)f.length()];
12 fs.read(bytes);
13 String str=new String(bytes,"UTF-8");
14 System.out.println(str);
15 }catch(IOException e){
16 e.printStackTrace();
17 }
18 }
19 }
用FileReader 字符流正确读取中文
1 package IO流;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.io.FileInputStream;
6 import java.io.FileReader;
7
8 public class 读取中文2 {
9 public static void main(String[] args) {
10 File f=new File("D://1.txt");
11 try(FileReader fr=new FileReader(f)){
12 char[] word=new char[(int)f.length()];
13 fr.read(word);
14 System.out.println(new String(word));//只有在文本文档设置成GBK编码方式的时候才不会出现乱码
15 }catch(IOException e) {
16 e.printStackTrace();
17 }
18 }
19
20 }
1 package IO流;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.io.FileInputStream;
6 import java.io.FileReader;
7 import java.io.InputStreamReader;
8 import java.nio.charset.Charset;
9
10 public class 读取中文2 {
11 public static void main(String[] args) {
12 File f=new File("D://1.txt");
13 try(InputStreamReader isr=new InputStreamReader(new FileInputStream(f),Charset.forName("UTF-8"))){
14 //因为FileInputStream不能改变读入的编码方式,所以如果想读取非GBK的编码方式的文件,需要使用InputStreamReader方法,设置编码方式为文本文档的编码方式
15 char[] word=new char[(int)f.length()];
16 isr.read(word);
17 System.out.println(new String(word));
18 }catch(IOException e) {
19 e.printStackTrace();
20 }
21 }
22 }