【问题标题】:Android unrecognized characters are displayed as "?"Android无法识别的字符显示为“?”
【发布时间】:2012-07-20 08:17:14
【问题描述】:

我有一个应用程序,它解析 csv 并显示其内容。我的问题是将“-”显示为“?”钻石里面。我该怎么做才能让它不显示?

编辑:这是我打开文件的代码

InputStream input = openFileInput("pms.csv");
SchedController.reader = new CSVReader(new InputStreamReader(input, "US-ASCII"));
SchedController.sched = SchedController.reader.readAll();
input.close();

我试过US-ASCIIUTF-8...

【问题讨论】:

  • 检查你的字符编码...
  • 必须有特殊字符编码问题。

标签: android parsing


【解决方案1】:

先前答案中建议的编码并没有解决我的问题。我尝试了编码“windows-1252”,我发现 here 并且它有效:

CSVReader reader = new CSVReader(new InputStreamReader(input, "windows-1252"));

【讨论】:

    【解决方案2】:

    您可以通过以下方式设置编码类型:

    StandardFonts.WIN_ANSI_ENCODING
    

    或者可以将字符串更改为:

           newString = oldString.replace(")", "\\)");
           newString = oldString.replace("(", "\\(");
    

    【讨论】:

    • 嗨,我可以将StandardFonts.WIN_ANSI_ENCODING具体放在活动的哪个位置?
    • 您尝试设置字体或文本的位置,您可以在那里应用 setFont(StandardFonts.SUBTYPE, StandardFonts.TIMES_ROMAN, StandardFonts.WIN_ANSI_ENCODING);
    • 啊.. 就像我有一个 TextView name.setFont(StandardFonts.SUBTYPE, StandardFonts.TIMES_ROMAN, StandardFonts.WIN_ANSI_ENCODING); 一样?像这样?
    【解决方案3】:

    尝试将字符编码更改为 UTF-8

    SchedController.reader = new CSVReader(new InputStreamReader(input, "UTF-8"));
    

    【讨论】:

      【解决方案4】:

      你也可以参考下面的帖子

      https://stackoverflow.com/a/2680834/1441666

      Android 支持以下编码

      • Xml.Encoding ISO_8859_1
      • Xml.Encoding US_ASCII
      • Xml.Encoding UTF_16
      • Xml.Encoding UTF_8

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-28
        • 2015-04-20
        • 2018-04-07
        • 2011-06-25
        • 1970-01-01
        • 2022-10-13
        • 2014-03-24
        • 1970-01-01
        相关资源
        最近更新 更多