java - Android 使用字符串打印表情符号

标签 java android character-encoding

我有一个变量(表情符号),其中包含一个字符串 \ud83d\ude03 我从解析 xml 得到的。它们是表情符号编码。问题是当我尝试以下列方式打印它们时:

editText.setText(emoji)  

输出是\ud83d\ude03

但是当我这样做时:

editText.setText("\ud83d\ude03") 

输出是笑脸。有什么解决办法吗?我认为问题是我的反斜杠被转义了。我无法更改 xml 文件,因此我尝试在 java 本身中转换字符串但无济于事。

最佳答案

这段代码:

String smiley = "\ud83d\ude03";
EditText et = (EditText) findViewById(R.id.editText);
et.setText(smiley);

TextView tv = (TextView) findViewById(R.id.textView);
tv.setText(smiley);

布局文件:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Text"
    android:id="@+id/textView"
    android:layout_marginTop="150dp"
    android:layout_marginLeft="50dp"/>


<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editText"
    android:layout_below="@+id/textView"
    android:layout_alignLeft="@+id/textView"
    android:layout_alignStart="@+id/textView"/>

如您所见,它的工作原理。你的错误必须在 emoji 变量中。

Solution

关于java - Android 使用字符串打印表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38171608/

相关文章:

java - 将一组 ascii 字符转换回字符串

java - java中如何将Arraylist中的元素右移

java - Java 中的条件赋值

android - 每当拨出电话时打开免提电话

android - 启动所有选项卡的 Activity 以进行预缓存

java - 将字符串中的第一个字母大写。我究竟做错了什么?

android - MultiChoiceModeListener.onItemCheckedStateChanged() 仅在选中项目时执行

vb.net - 在 VB.NET 中显示向下的三角形 ▼ (U+25BC)

ios - 在 JSON 中,我在 "title"中获取以下格式的数据,如何获取实际数据?

php - 使用 Oracle、PHP 和 Oci8 处理 eacute 和其他特殊字符