现在的位置: 首页 > 综合 > 正文

android中文乱码解决大全 android中文乱码解决大全

2013年09月22日 ⁄ 综合 ⁄ 共 3317字 ⁄ 字号 评论关闭

http://blog.csdn.net/liaoci/article/details/7176268# 

android中文乱码解决大全

分类: Android 5380人阅读 评论(3) 收藏 举报
 1.读取中文文件乱码解决方法 
Java代码 复制代码 收藏代码
  1. package com.apj.conv;
      
  2.   
  3. import java.io.BufferedInputStream;
      
  4. import java.io.BufferedReader;
      
  5. import java.io.File;
      
  6. import java.io.FileInputStream;
      
  7. import java.io.FileNotFoundException;
      
  8. import java.io.IOException;
      
  9. import java.io.InputStreamReader;
      
  10.   
  11. import android.app.Activity;
      
  12. import android.os.Bundle;
      
  13. import android.os.Environment;
      
  14. import android.widget.TextView;
      
  15.   
  16. public class ConverActivity extends Activity {
      
  17.        
  18.     private TextView textview ;
      
  19.        
  20.        
  21.     @Override  
  22.     public void onCreate(Bundle savedInstanceState) {
      
  23.         super.onCreate(savedInstanceState);
      
  24.         setContentView(R.layout.main);   
  25.            
  26.         textview = (TextView) findViewById(R.id.lrctext);   
  27.            
  28.          
  29.         System.out.println("===================convertCodeAndGetText begin=================== ");
      
  30.         ///获得SDCard中文件的路径   
  31.         String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator ;   
  32.         String tochinese = convertCodeAndGetText(path+"a.txt");
      
  33.         System.out.println(tochinese);   
  34.         System.out.println("===================cconvertCodeAndGetText end===================");
      
  35.         textview.setText(tochinese);   
  36.            
  37.     }   
  38.       
  39.     public String convertCodeAndGetText(String str_filepath) {// ת��   
  40.   
  41.         File file = new File(str_filepath);
      
  42.         BufferedReader reader;   
  43.         String text = "";
      
  44.         try {
      
  45.                
  46.             FileInputStream fis = new FileInputStream(file);
      
  47.             BufferedInputStream in = new BufferedInputStream(fis);
      
  48.             in.mark(4);
      
  49.             byte[] first3bytes = new byte[3];
      
  50.             in.read(first3bytes);   
  51.             in.reset();   
  52.             if (first3bytes[0] == (byte0xEF && first3bytes[1] == (byte0xBB  
  53.                     && first3bytes[2] == (byte0xBF) {// utf-8   
  54.   
  55.                 reader = new BufferedReader(new InputStreamReader(in, "utf-8"));
      
  56.   
  57.             } else if (first3bytes[0] == (byte0xFF  
  58.                     && first3bytes[1] == (byte0xFE) {
      
  59.   
  60.                 reader = new BufferedReader(
      
  61.                         new InputStreamReader(in, "unicode"));
      
  62.             } else if (first3bytes[0] == (byte0xFE  
  63.                     && first3bytes[1] == (byte0xFF) {
      
  64.   
  65.                 reader = new BufferedReader(new InputStreamReader(in,
      
  66.                         "utf-16be"));
      
  67.             } else if (first3bytes[0] == (byte0xFF  
  68.                     && first3bytes[1] == (byte0xFF) {
      
  69.   
  70.                 reader = new BufferedReader(new InputStreamReader(in,
      
  71.                         "utf-16le"));
      
  72.             } else {
      
  73.   
  74.                 reader = new BufferedReader(new InputStreamReader(in, "GBK"));
      
  75.             }   
  76.             String str = reader.readLine();   
  77.   
  78.             while (str != null) {
      
  79.                 text = text + str + "\n";
      
  80.                 str = reader.readLine();   
  81.   
  82.             }   
  83.             reader.close();   
  84.   
  85.         } catch (FileNotFoundException e) {
      
  86.             // TODO Auto-generated catch block   
  87.             e.printStackTrace();   
  88.         } catch (IOException e) {
      
  89.             e.printStackTrace();   
  90.         }   
  91.         return text;
      
  92.     }   
  93.   

抱歉!评论已关闭.