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)方法(二)