Android中检测字符编码(GB2312,ASCII,UTF8,UNICODE,TOTAL——ENCODINGS)方法(二)

Intent intent = getIntent();
        String contentUri = null;
        Uri uri =null;
        if (intent.getData() != null) {
            uri = intent.getData();
            contentUri = "file".equals(uri.getScheme())
                    ? FileContentProvider.BASE_URI + uri.getEncodedPath()
                    : uri.toString();
            String intentType = intent.getType();
            if (intentType != null) {
                contentUri += "?" + intentType;
            }
        }
        File mFile = new File(uri.getPath());
        InputStream mIn = null;
        try{
            Log.d(LOGTAG,"file is "+mFile);
            mIn = new FileInputStream(mFile);
            byte[]b = new byte[3];
            mIn.read(b);
            
            mIn.close();
            Log.d(LOGTAG,"B is "+b[0]+b[1]+b[2]);
            if (b[0]==-27||(b[0]==-17&&b[1]==-69&&b[2]==-65))  {
                s.setDefaultTextEncodingName("utf-8");//added by chenxuan for SWBUG00027593
             }
            else{
                s.setDefaultTextEncodingName("GBK");
                }
         }catch(FileNotFoundException e){
            Toast.makeText(this,R.string.file_inexistence,Toast.LENGTH_SHORT).show();
            finish();
            return;
         }catch(IOException ex){
            finish();
            Toast.makeText(this, R.string.read_file_failed,Toast.LENGTH_SHORT).show();
            return;
        }

Android中检测字符编码(GB2312,ASCII,UTF8,UNICODE,TOTAL——ENCODINGS)方法(二),,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。