【问题标题】:String Encoding TextView.setText()字符串编码 TextView.setText()
【发布时间】:2017-11-02 20:07:52
【问题描述】:

在 TextView 中设置文本时,字符“ù”未被正确解释。这是我的代码:

TextView tv = new TextView(context);
String s;
byte[] bytes;
s = "dgseùeT41ù";
bytes = s.getBytes("ISO-8859-1");
tv.setText(new String(bytes));

我不知道我在哪里失败了。谢谢支持

【问题讨论】:

  • 我不知道这个问题,但我只知道它可以通过使用字符串资源来解决
  • @Pietro:: 我尝试使用 s = "dgseùeT41ù"; 设置 TextViewsetText(s)并且它在我的设备上正确显示。
  • @Barns52 好东西。有些人会否决它!

标签: java android encoding textview


【解决方案1】:

你使用了"ISO-8859-1",但java默认使用UTF-8,所以要么在创建字符串时定义字符集

From docs

大小写映射基于 Unicode 标准版本 字符类和A String 表示UTF-16格式的字符串

所以

bytes = s.getBytes("ISO-8859-1");
tv.setText(new String(bytes,"ISO-8859-1"));

或者根本不使用它

bytes = s.getBytes();
tv.setText(new String(bytes));

【讨论】:

  • 答案怎么会有System.out.println 是复制粘贴。您可能需要放置原始帖子的链接!
  • @Xenolion 太有判断力了,我在在线 Java 门户网站上对其进行了测试,tada
  • 好的,知道了!对不起!
猜你喜欢
  • 2013-12-29
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
相关资源
最近更新 更多