张张张阿君啊 2019-10-15 14:12 采纳率: 0%
浏览 3192

如何读取csv文件的编码格式?(该问题已解决,答案在我自己的评论中)

目前有一个方法去获取csv文件的编码格式,但是当csv文件为UTF8时,读取出的结果是GBK,

public static String codeString(String fileName) throws Exception {
        BufferedInputStream bin = new BufferedInputStream(new FileInputStream(fileName));
        int p = (bin.read() << 8) + bin.read();
        bin.close();
        String code = null;

        switch (p) {
            case 0xefbb:
                code = "UTF-8";
                break;
            case 0xfffe:
                code = "Unicode";
                break;
            case 0xfeff:
                code = "UTF-16BE";
                break;
            default:
                code = "GBK";
        }

        return code;
    }

目前的原因应该是“p”的问题图片说明
图片说明
这个地方就直接判断成了GBK,有没有大佬能给个判断编码格式的代码

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-10-15 14:56
    关注

    如果文件带有BOM,那么它是编码的标志,如果没有,只能用猜的,windows api里还专门提供了这样的函数

    评论

报告相同问题?

悬赏问题

  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 spring后端vue前端
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题