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

posted @ 2012-07-27 18:49  ok_lanyan  阅读(5064)  评论(0编辑  收藏  举报