一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - java讀取文件字符集示例方法

java讀取文件字符集示例方法

2019-11-08 14:30java技術(shù)網(wǎng) JAVA教程

這篇文章主要介紹了java讀取文件字符集的示例,需要的朋友可以參考下

代碼如下:

public static String getCharset(File file) {
        String charset = "GBK";
        byte[] first3Bytes = new byte[3];
        try {
            boolean checked = false;
            BufferedInputStream bis = new BufferedInputStream(
                  new FileInputStream(file));
            bis.mark(0);
            int read = bis.read(first3Bytes, 0, 3);
            if (read == -1)
                return charset;
            if (first3Bytes[0] == (byte) 0xFF && first3Bytes[1] == (byte) 0xFE) {
                charset = "UTF-16LE";
                checked = true;
            } else if (first3Bytes[0] == (byte) 0xFE && first3Bytes[1]
                == (byte) 0xFF) {
                charset = "UTF-16BE";
                checked = true;
            } else if (first3Bytes[0] == (byte) 0xEF && first3Bytes[1]
                    == (byte) 0xBB
                    && first3Bytes[2] == (byte) 0xBF) {
                charset = "UTF-8";
                checked = true;
            }
            bis.reset();
            if (!checked) {
                int loc = 0;
                while ((read = bis.read()) != -1) {
                    loc++;
                    if (read >= 0xF0)
                        break;
                    //單獨出現(xiàn)BF以下的,也算是GBK
                    if (0x80 <= read && read <= 0xBF)
                        break;
                    if (0xC0 <= read && read <= 0xDF) {
                        read = bis.read();
                        if (0x80 <= read && read <= 0xBF)// 雙字節(jié) (0xC0 - 0xDF)
                            // (0x80 -
                            // 0xBF),也可能在GB編碼內(nèi)
                            continue;
                        else
                            break;
                     // 也有可能出錯,但是幾率較小
                    } else if (0xE0 <= read && read <= 0xEF) {
                        read = bis.read();
                        if (0x80 <= read && read <= 0xBF) {
                            read = bis.read();
                            if (0x80 <= read && read <= 0xBF) {
                                charset = "UTF-8";
                                break;
                            } else
                                break;
                        } else
                            break;
                    }
                }
                System.out.println(loc + " " + Integer.toHexString(read));
            }
            bis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return charset;
    }

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品二区高清在线 | 欧美日韩中文国产一区二区三区 | 青青草国产精品久久久久 | 国产精品一区二区在线观看完整版 | 岛国在线播放v片免费 | 精品久久久久久久久久久 | 97视频免费人人观看人人 | 亚洲 日本 中文字幕 制服 | 美国一级大黄大色毛片 | 亚洲欧美色综合图小说 | 日本春菜花在线中文字幕 | 韩国理论片最新第一页 | 国产美女操 | 91调教| 成人欧美一区二区三区白人 | 国产精品久久现线拍久青草 | 精品国产人妻国语 | 日本肉体xxxx| 亚洲精品久久久久AV无码 | 91短视频在线播放 | 牛牛色婷婷在线视频播放 | 欧美影院一区二区三区 | 青青青在线观看国产精品 | adc 我们的永久网址 | 日本片免费观看一区二区 | 红色播放器 | 双性肉文高h | 国产青草亚洲香蕉精品久久 | 午夜福利视频极品国产83 | 好大好硬好紧太深了受不了 | 性奴公司 警花 | 亚洲欧美综合人成野草 | 日本亚洲欧洲高清有码在线播放 | 成人操| 无罩看奶禁18 | 大伊香蕉精品视频一区 | 亚洲一区二区精品视频 | 疯狂伦交1一6 小说 风间由美在线 | 亚洲风情无码免费视频 | 动漫白丝袜美女羞羞 | 欧美亚洲国产另类在线观看 |