zoukankan      html  css  js  c++  java
  • Java实现将任何编码方式的txt文件以UTF-8编码方式转存

    本文利用JDK中的BufferedReader和BufferedWriter实现将任何编码方式的txt文件以UTF-8编码方式转存。

    UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。UTF-8最大的优势是可以避免乱码问题。

    本方法首先判断txt文件的编码方式,然后按照其编码方式按行读取,再按行以UTF-8的编码写入。其中借助EncodingDetect类检测txt文件的编码方式。EncodingDetect类可以点击 下载 到CSDN下载。本来想免费下载的,可是没有这个选项,那就设置的1个积分,今天一看不知道怎么变成了5个积分,想改回去却不知道怎么改回。因为我之前也遇到过下载资料没有积分的情况,这种苦我懂得,所以大家如有需要但是没有积分文末留下邮箱即可,我看到会尽快回复。

    /**
         * 
         * @param inputFileUrl
         * @param outputFileUrl
         * @throws IOException
         */
        public static void saveAsUTF8(String inputFileUrl, String outputFileUrl) throws IOException {
            String inputFileEncode = EncodingDetect.getJavaEncode(inputFileUrl);
            System.out.println("inputFileEncode===" + inputFileEncode);
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(new FileInputStream(inputFileUrl), inputFileEncode));
            BufferedWriter bufferedWriter = new BufferedWriter(
                    new OutputStreamWriter(new FileOutputStream(outputFileUrl), "UTF-8"));
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                bufferedWriter.write(line + "
    ");
            }
            bufferedWriter.close();
            bufferedReader.close();
            String outputFileEncode = EncodingDetect.getJavaEncode(outputFileUrl);
            System.out.println("outputFileEncode===" + outputFileEncode);
            System.out.println("txt文件格式转换完成");
        }

     测试代码:

    String inputFileUrl = "C:\Users\Administrator\Desktop\傲慢与偏见.txt";
    String outputFileUrl = "C:\Users\Administrator\Desktop\utf8\傲慢与偏见.txt";
    saveAsUTF8(inputFileUrl, outputFileUrl);

     测试结果:

    由于博主也是在攀登的路上,文中可能存在不当之处,欢迎各位多指教! 如果文章对您有用,那么请点个”推荐“,以资鼓励!
  • 相关阅读:
    括号序列
    NOI剑客决斗
    洛谷 P1896 [SCOI2005]互不侵犯King
    codevs贪吃的九头龙
    ie6绝对定位的块会被select元素遮挡的解决方案
    Normalize.css与Reset CSS:定义浏览器统一的默认样式
    IE6中PNG图片背景无法透明显示的最佳解决方案
    关于ie6中绝对定位或浮动的div中既有向左float也有向右float时候如何让外层div自适应宽度的解决方案--
    [Z]关于html中的条件注释
    [z]IE6各种不兼容问题
  • 原文地址:https://www.cnblogs.com/sgh1023/p/10009538.html
Copyright © 2011-2022 走看看