當前位置:首頁 » 安卓系統 » android讀取txt亂碼

android讀取txt亂碼

發布時間: 2022-12-14 05:33:47

『壹』 安卓手機txt閱讀個別字亂碼

不是編碼錯誤,編碼錯誤所有的字都會變
亂碼
,經過你的描述初步
判讀
應該是文檔自身的問題,因為有些txt文檔是軟體掃描上去的,遇到識別不清的字就自動變成亂碼。

『貳』 讀取android中assets中的txt文檔。亂碼怎麼辦

一. 前言
最近自己寫一個程序,需要把文本文件裡面的一些數據在程序第一次啟動的時候初始化到資料庫中去。所以就涉及到了讀取文件的操作。在我們android項目裡面,有個assets文件夾,就是用來存儲資源文件的,可以通過AssetManager訪問。本來以為這是一件三隻手指抓田螺--十拿九穩的事情,結果還是花了自己一個小時來調試它,就是讀取文件出現了亂碼。出現這種東西 "��1��0��0��0��1��",有些問號在裡面。。

二. 解決辦法
後來在網上找了些資料看了下,說是要把文本文件保存成UTF-8類型才可以。試了下,果然ok..下面分享下自己這塊功能的代碼

三. 代碼
1. 文本文件內容格式:
復制內容到剪貼板
代碼:
13076-5 2 0 9 5 0 1
13075-9 5 6 8 4 3 3
13074-2 0 4 0 2 8 8
13073-8 8 6 6 0 7 8
13072-2 0 8 8 6 3 5
大概就是這種格式,我需要對它們每行都進行解析,比如第一行解析成 13076 5 2 0 9 5 0 1 ,也就是8個數字,然後存入資料庫裡面分別對應的8列
2. 主要代碼
這里的話,自己新建了一個MyDbOpenHelper,然後重寫了onCreate方法,這個方法會在我們第一次調用db.getReadDatabase()或者getWriteDataBase()方法時調用,而且只會調用一次。就是程序第一次啟動的時候。
ok..在onCreate方法裡面,主要代碼的功能已經注釋,大家可以自己看。。private static class MyDbOpenHelper extends SQLiteOpenHelper{

private Context c;
public MyDbOpenHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
c = context;
}

@Override
public void onCreate(SQLiteDatabase db) {
Log.d("Sandy", "onCreate database");
//execute when user invoke getReadDatabase/getWriteDatabase
//當用戶第一次程序的時候,我們會調用這里,創建我們的表。
db.execSQL("CREATE TABLE " + RAW_DATA_TABLE + " ("
+ RawData._ID + " INTEGER PRIMARY KEY,"
+ RawData.COLUMN_ISSUE + " TEXT,"
+ RawData.COLUMN_NUMBER_ONE + " TEXT,"
+ RawData.COLUMN_NUMBER_TWO + " TEXT , "
+ RawData.COLUMN_NUMBER_THREE + " TEXT,"
+ RawData.COLUMN_NUMBER_FOUR + " TEXT,"
+ RawData.COLUMN_NUMBER_FIVE + " TEXT,"
+ RawData.COLUMN_NUMBER_SIX + " TEXT,"
+ RawData.COLUMN_NUMBER_SEVEN + " TEXT"
+ ");");

ContentValues cv = new ContentValues();
//聲明解析文件的文件流對象
InputStream in = null;
BufferedReader reader = null;
try {
//通過AssetManager讀取文件
in = c.getResources().getAssets().open("qixingcai-data.txt", AssetManager.ACCESS_BUFFER);
//構造BufferedReader對象,以便逐行讀取
reader = new BufferedReader(new InputStreamReader(in));
String line ;
//逐行讀取文件內容,讀取一行,就把這一行數據進行拆分,然後保存進資料庫
while((line = reader.readLine()) != null){
cv.clear();
//根據分割符"-"和" "進行數據拆分,然後把得到的數據放到ContentValues對象中
String[] issueAndNumber = line.split("-");
String[] numbers = issueAndNumber[1].split(" ");
cv.put(RawData.COLUMN_ISSUE, issueAndNumber[0]);
cv.put(RawData.COLUMN_NUMBER_ONE, numbers[0]);
cv.put(RawData.COLUMN_NUMBER_TWO, numbers[1]);
cv.put(RawData.COLUMN_NUMBER_THREE, numbers[2]);
cv.put(RawData.COLUMN_NUMBER_FOUR, numbers[3]);
cv.put(RawData.COLUMN_NUMBER_FIVE, numbers[4]);
cv.put(RawData.COLUMN_NUMBER_SIX, numbers[5]);
cv.put(RawData.COLUMN_NUMBER_SEVEN, numbers[6]);

//插入資料庫
db.insert(RAW_DATA_TABLE, "_id", cv);

Log.d("Sandy", "issueAndNumber[0]" + issueAndNumber[0]
+ "one: " + numbers[0] + " all: " + issueAndNumber[1]);
}

} catch (IOException e) {
Log.d("Sandy", "", e);
}finally{
if (in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

『叄』 安卓讀取txt文件的時候亂碼,該如何修改呢

這樣 你把你原來txt文件打開,然後在點擊「另存為」 在彈出的對話框中的「編碼方式」選擇「UTF-8」

如果還不行就改一下代碼吧:
strTxt = new String(buf);
strTxt =new String(strTxt .getBytes(),"utf-8");

『肆』 android讀取txt亂碼 怎麼轉換txt為utf-8

通過InputStream設置字元編碼,實例代碼如下:

java">try{
=newFileInputStream(newFile(""));
BufferedReaderbufferedReader=newBufferedReader(newInputStreamReader(fileInputStream,"utf-8"));

Stringline,result="";

while((line=bufferedReader.readLine())!=null){
result+=line;
}

System.out.println(result);

}catch(Exceptione){
e.printStackTrace();
}

希望能夠幫到你!

『伍』 讀取android中assets中的txt文檔。亂碼怎麼辦

一般為兩種編碼格式
GBK或者UTF8。亂碼是因為你項目的編碼與.txt中的編碼不同
Result
=
new
String(Result.getBytes("GBK"),
"ISO_8859_1");
你可以參考上面這個函數,對內容做編碼轉換。

熱點內容
打碼軟體源碼 發布:2025-03-20 07:08:06 瀏覽:109
前端android 發布:2025-03-20 06:50:42 瀏覽:93
進制轉換棧c語言 發布:2025-03-20 06:50:31 瀏覽:339
myeclipse不自動編譯了 發布:2025-03-20 06:41:38 瀏覽:777
led汽車大燈和鹵素燈該選哪個配置 發布:2025-03-20 06:40:55 瀏覽:917
sql網校 發布:2025-03-20 06:16:42 瀏覽:279
安卓手機圖標排列為什麼會混亂 發布:2025-03-20 06:16:05 瀏覽:761
手機pin初始密碼是多少 發布:2025-03-20 06:15:59 瀏覽:900
javaif常量變數 發布:2025-03-20 06:15:57 瀏覽:344
iis安裝sql 發布:2025-03-20 06:05:31 瀏覽:149