【发布时间】: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