Android Sqlite 批量導入CSV文件 中文亂碼


1、首先需要將 CSV  文件處理下字符集的問題 ,眾所周知 sqlite 默認字符集 UTF-8 ,涉及中文的地方如果不設置那么導入sqlite的數據將會亂碼。

右鍵選擇 CSV 文件,打開方式為 記事本 ,將會看到如下數據

 

需要將第一行列去除,然后將分號 ” 同時去掉,最終結果為

 

下面這步最重要,將文件另存為,最下方 編碼 選擇 UTF-8 ,然后另存到 C 盤根目錄即可。

 

2、因為PC沒有安裝 sqlite ,所以這里將 sqlite 操作交給 Android 手機來處理。

首先將 數據壓入 Android 手機 sd 卡中

C:\Users\John>adb push c:/employee.csv /mnt/sdcard  
0 KB/s (89 bytes in 0.191s)  

使用 adb 命令連接手機,進入 sd 卡目錄

C:\Users\John>adb shell  
$ cd /mnt/sdcard/  
cd /mnt/sdcard/  

使用 sqlite3 創建 mydata.db 數據庫,如不指定路徑,那么 sqlite3 將會默認將數據庫文件創建運行 sqlite3 的目錄中,建表語句可以從 oracle 中復制即可。建表完畢,可以使用 .ta 命令查看新建表是否成功。

$ sqlite3 mydata.db  
sqlite3 mydata.db  
SQLite version 3.6.22  
Enter ".help" for instructions  
sqlite> create table EMPLOYEE(xh VARCHAR2(60),xm VARCHAR2(100),bm VARCHAR2(100),dz VARCHAR2(200));  
create table EMPLOYEE(xh VARCHAR2(60),xm VARCHAR2(100),bm VARCHAR2(100),dz VARCHAR2(200));  
sqlite> .ta  
.ta  
EMPLOYEE  

3、導入 csv 數據文件到新建的 employee 表中 ,需要做點准備工作。因為 csv 默認數據分割符為逗號 “,”  而 sqlite 默認數據分割符為 “|” ,先用 .show 命令確認下,然后再改,當然也可以先改 然后再用 .show 來查看,運行 sqlite 命令一定要注意他自身命令都是要 點 開頭滴。

sqlite> .show  
.show  
     echo: off  
  explain: off  
  headers: off  
     mode: list  
nullvalue: ""  
   output: stdout  
separator: "|"  
    width:  
sqlite> .separator ","  
.separator ","  

4、上述准備工作做好之后,就可以正式導入數據。

.import  //導入命令 

 /mnt/sdcard/employee.csv  //csv文件路徑

employee //csv文件導入指定表

sqlite> .import /mnt/sdcard/employee.txt employee  
.import /mnt/sdcard/employee.txt employee 

展示結果,OK 沒啥問題。

轉自:http://blog.csdn.net/johnnycode/article/details/7413111


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM