【问题标题】:Unicode String conversionUnicode 字符串转换
【发布时间】:2014-04-14 20:43:50
【问题描述】:

我对 android 中的 unicode 字符有一个奇怪的问题:如果我 setText("\u00e8") 它显示 'è' 并且它是正确的,但如果我这样做,它不会:

   System.out.println(bob); // "\u00e81"
   String mess=bob.substring(1,bob.length()-2); // \u00e8
   textView.setText(mess); // this prints \u00e8

为什么???提前致谢。

【问题讨论】:

  • 我猜你的设备不支持那个字母(意味着字体)
  • bob.length() 在您的情况下是 1。您尝试将子字符串从 1 个字符获取到 -1 == (1-2) 个字符。这必须返回 null。
  • @blackbelt 他打印'bob'。然后他 setText(null),因为 mess == null,因为 bob.substring(1,bob.lenhth()-2) == bob.substring(1,-1) == null
  • 使用'mess=bob.substring(0,bob.length()-1);'作为我的回答如下
  • 对不起,字符串 bob 有双引号,不是简单的 "\u00e81" 而是 ""\u00e81" ",子字符串是去掉双引号和 '1' \u00e8 是“è”。

标签: android string unicode textview


【解决方案1】:

使用这个:

 String bob = "\u00e81";
 System.out.println( bob);
 String mess=bob.substring( 0, bob.length()-1);
 System.out.println( mess);
 textView.setText( mess);

【讨论】:

  • 对不起,字符串 bob 有双引号,不是简单的 "\u00e81" 而是 ""\u00e81" ",子字符串是去掉双引号和 '1' \u00e8 是“è”。
猜你喜欢
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-04
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 1970-01-01
相关资源
最近更新 更多