gpt4 book ai didi

java - 安卓工作室 "bug": Unable to view correctly a foreign UTF8 string in debug or android layout (Windows)

转载 作者:搜寻专家 更新时间:2023-11-01 03:24:56 25 4
gpt4 key购买 nike

我无法在 AndroidSutdio 调试或 android 布局中正确查看我的 UTF8 字符串。下面是我的代码:

       String test1 = "hélǐ";

结果是 test1 = hÉlÇ�

test1 看起来类似于在 notepad++ 中使用 ANSI 编码读取我的 UTF8 字符串。但是,如果我直接将其硬编码到 XML 布局中(而不是使用 Button.setHint() 方法),我可以正确地看到 hélǐ。

更新 1:感谢 Jon Skeet 指出 test1.lenght() = 6 而不是 4 因此不是显示问题。更新 2:感谢 Joop Eggen 指出“h\u00e9l\u012d”返回正确答案更新 3:我已将我的代码复制粘贴到 eclipse 上的等效 android 项目,并且工作正常。因此它必须是 AndroidStudio 相关的问题。更新 4:添加了一个变量 JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF-8 以强制 javac 使用该命令但对结果没有影响。更新 5:我在 ubuntu 上安装了 AndroidStudio 并复制粘贴我的代码,它在那里也运行良好。但是如何在 AndroidStudio Windows 上修复它呢? (不幸的是我需要使用 Windows)

以前有人遇到过这个问题吗?如何在不使用\u 代码的情况下修复谢谢

注意:

  • 我正在使用 AndroidStudio
  • 在我的 Javac 和 Android DX 编译器中,我添加了 -encoding utf8
  • 在我的 AndroidStudio 中,所有文件编码都设置为 utf8(我可以在右下角看到 utf8)
  • Charset.defaultCharset() 返回 utf8
  • InputStreamReader.getEncoding() 返回 utf8
  • 我所有的 xml 布局在顶部都有一个 utf8 标志
  • Notepad++ 正确读取了我使用 utf8 编码复制/粘贴的“hélǐ”。

最佳答案

  • 也试试 h\u00e9l\u012d。这消除了 java 源代码编码的因素。
  • 尝试将文本写入文件:

    new OutputStreamWriter(new FileOutputStream(file), "UTF-8")

那么原因应该更清楚了。

由于编辑器和编译器必须使用相同的编码,您似乎已经为其余部分做了所有可能的事情。特别是用 NotePad++ 检查(- JEdit 也是可能的)。一个小点是IDE后台编译和最终编译。

同时运行的还有一个控制台:控制台可能会错误地使用操作系统编码。

所有那些 new String(...) 都是多余的和错误的。不要在这里使用它,因为实际上一个错误可以消除编辑器和编译器编码不匹配之间的错误。

(在 ISO-8859-1 中 ĭ (i-breve) 不可用 - 因此 test3。)

关于java - 安卓工作室 "bug": Unable to view correctly a foreign UTF8 string in debug or android layout (Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16757324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com