EasyClick 读文本乱码

EasyClick 读文本乱码解决办法

这个问题是因为EasyClick升级后强制读取文本编码为UTF-8导致的。
例如这样的
在这里插入图片描述

解决办法

  1. 自己以你自己的编码方式写java插件读取。
  2. 修改文本的编码为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-老鬼 ~转载请注明原文地址
免责声明:本文所有的教程仅限交流学习使用不得用于违法用途,造成的法律后果本人不承担责任。

你可能感兴趣的:(Easy,Click,android)