EasyClick 读文本乱码解决办法
这个问题是因为EasyClick升级后强制读取文本编码为UTF-8导致的。
例如这样的
解决办法
- 自己以你自己的编码方式写java插件读取。
- 修改文本的编码为UTF-8后即可正常读取。
java插件代码
/*
* Copyright(c) 2021,
* 文件名称:PluginClz.java
* 创建时间:2021/4/17 下午6:12
* 作者:laogui
*/
package com.plugin.gudcgukOhj;
import android.content.Context;
import android.os.Environment;
import android.util.Log;
import java.io.*;
import java.nio.charset.Charset;
public class PluginClz {
Context context;
public PluginClz(Context context) {
System.out.println("--- " + context);
}
/**
* 读取本地文本内容转为指定编码类型
* @param strFilePath 文本路径全名
* @param encode 编码类型
* @return
*/
public static String ReadTxtFile(String strFilePath ,String encode) {
String path = strFilePath;
String content = "";
//打开文件
File file = new File(path);
if (!file.isDirectory()) {
try {
InputStream instream = new FileInputStream(file);
InputStreamReader inputStreamReader = null;
try {
inputStreamReader = new InputStreamReader(instream, encode);
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
BufferedReader reader = new BufferedReader(inputStreamReader);
StringBuffer sb = new StringBuffer("");
String line;
try {
while ((line = reader.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
} catch (IOException e) {
e.printStackTrace();
}
content = sb.toString();
} catch (java.io.FileNotFoundException e) {
System.ou.println("TestFile", "The File doesn't not exist.");
}
}
return content;
}
}
调用方式 main.js
//这里的调用是通过先载入apk文件,然后在进行实例化对象进行的
//该js文件打包不会进入插件中,仅供测试使用
function main() {
//这里进行载入插件操作
var r = loadDex("mokuai.apk");
if (!r) {
loge("载入插件失败");
return;
} else {
logd("载入插件成功");
}
//这里实例化对象,然后进行调用相关的方法
var obj = new com.plugin.gudcgukOhj.PluginClz(context);
let file = "/sdcard/1.txt"
let encode = "GB18030"; // 指定你的原本编码
var s = obj.ReadTxtFile(file,encode);
logd("java 返回数据: "+s);
}
main();
我是Mr-老鬼、QQ1156346325 。交流QQ群:620028786,647082990
------------------------------------------------版权声明------------------------------------------------------
本文版权所有~Mr-老鬼 ~转载请注明原文地址
免责声明:本文所有的教程仅限交流学习使用不得用于违法用途,造成的法律后果本人不承担责任。