有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从文本文件中读取外来词时不显示java Unicode

我正在尝试创建外来词典,但当我尝试从txt文件加载词典数据时。它是这样表示的������������. 下面是我用来读取该文件的方法:

   private WordList(Context context) throws IOException {
    mWordList = new ArrayList<>();
    AssetManager am = context.getAssets();
    InputStream is;
    StringBuilder stringBuilder=new StringBuilder("");
    is = am.open("dat.txt");
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
    while (bufferedReader.readLine()!=null){
    stringBuilder.append(bufferedReader.readLine());
        Log.d("String",stringBuilder.toString());
        StringTokenizer stringTokenizer = new StringTokenizer(stringBuilder.toString(),",;'");
        Word word = new Word();
        StringBuilder def = new StringBuilder();
      /*  for (int i=0; i<stringTokenizer.countTokens();i++){
           if(i==0){
               word.setWrodName(stringTokenizer.nextToken());
            if (i==1){
               def.append(stringTokenizer.nextToken());
            }
               if (i==2){
                   def.append(",  ");
                   def.append(stringTokenizer.nextToken());
           }
               if (i==3){
                   def.append(",  ");
                   def.append(stringTokenizer.nextToken());
               }
               word.setWordDefinition(def.toString());
           }
            def.delete(0,def.length());

        }*/
        stringBuilder.delete(0,def.length());
        mWordList.add(word);

    }
    is.close();
    Log.d("String",stringBuilder.toString());

}

在行循环视图中,它显示带有符号和数字的笔划


共 (2) 个答案

  1. # 1 楼答案

    你能试着传递编码吗

    // Change encoding to "UTF-8" or whatever you want.
    BufferedReader in = new BufferedReader(new InputStreamReader(stream, encoding));
    

    还是这样试试

    Reader in = new InputStreamReader(new FileInputStream("file"), "UTF-8"));
    
  2. # 2 楼答案

    1. 检查数据库编码类型utf8、utf16、拉丁文
    2. 对UI进行了相应的更改。比如<;%@page contentType=“text/html;charset=UTF-8”%>;html或jsp格式
    3. 检查dat的字符编码。txt