当前位置:首页 » 安卓系统 » 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");
你可以参考上面这个函数,对内容做编码转换。

热点内容
安卓手机电影怎么投屏到ipad上 发布:2025-03-20 04:27:23 浏览:677
苹果安卓基于什么开发 发布:2025-03-20 04:20:52 浏览:520
算法化是 发布:2025-03-20 03:48:20 浏览:771
拆二代访问 发布:2025-03-20 03:47:34 浏览:63
随机数排序c语言 发布:2025-03-20 03:35:31 浏览:498
当前页面脚本发生错误类型不匹配 发布:2025-03-20 03:26:47 浏览:992
strutsajax上传图片 发布:2025-03-20 03:25:03 浏览:386
手机在线缓存 发布:2025-03-20 03:21:06 浏览:46
ftp路径上传时间 发布:2025-03-20 03:13:42 浏览:104
电脑连接通讯服务器失败怎么回事 发布:2025-03-20 03:10:30 浏览:287