Java 字符集编码

Posted linlf03

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 字符集编码相关的知识,希望对你有一定的参考价值。

1、NioTest13_In.txt文件内容拷贝到NioTest13_Out.txt文件中
public class NioTest13 

    public static void main(String[] args) throws  Exception 
        String inputFile = "NioTest13_In.txt";
        String outFile = "NioTest13_Out.txt";

        RandomAccessFile inputRandomAccessFile = new RandomAccessFile(inputFile,"r");

        RandomAccessFile outputRandomAccessFile = new RandomAccessFile(outFile,"rw");

        long inputLength = new File(inputFile).length();

        FileChannel inputFileChannel = inputRandomAccessFile.getChannel();
        FileChannel outputFileChannel = outputRandomAccessFile.getChannel();

        MappedByteBuffer inputData = inputFileChannel.map(FileChannel.MapMode.READ_ONLY, 0, inputLength);
        System.out.println("================================");
        /*Charset.availableCharsets().forEach( (k,v) -> 
            System.out.println(k + ", " + v);
        );*/
        System.out.println("================================");

        Charset charset = Charset.forName("iso-8859-1"); //utf-8
        CharsetDecoder decoder = charset.newDecoder(); //字节数组转字符串
        CharsetEncoder encoder = charset.newEncoder(); //字符串转字符数组

        CharBuffer charBuffer = decoder.decode(inputData);

         ByteBuffer outputData = encoder.encode(charBuffer);

        outputFileChannel.write(outputData);

        inputRandomAccessFile.close();
        outputRandomAccessFile.close();
    

  

2、创建"NioTest13_In.txt文件

技术图片

 

3、执行后生成了NioTest13_Out.txt 文件

技术图片

可以知道使用: Charset charset = Charset.forName("iso-8859-1"); //utf-8

使用iso-8859-1和utf-8,中文显示都是正常的

 

以上是关于Java 字符集编码的主要内容,如果未能解决你的问题,请参考以下文章

java文件上传如何获取上传文件的字符集编码

Java IO4:字符编码

java如何在字符串编码范围内输出频率最高的字符?

java如何把以unicode编码形式的字符串变成编码前的形式

java如何对一个字符串生成唯一的编码

JAVA总结之编码