Android打印Emojis使用字符串

时间:2016-07-03 15:44:59

标签: java android character-encoding

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

editText.setText(emoji)  

输出为\ud83d\ude03

然而,当我这样做时:

editText.setText("\ud83d\ude03") 

输出是笑脸。这有什么工作吗?我认为问题是我的反斜杠正在逃脱。我无法更改xml文件,因此我尝试在java中转换字符串无效。

2 个答案:

答案 0 :(得分:6)

此代码:

custDC.InsertNewCustomer(MyCustomers.CustomerName, MyCustomers.Address1, MyCustomers.Address2, MyCustomers.PostCode, MyCustomers.County, MyCustomers.Country, MyCustomers.RowCount, MyCustomers.CustomerID, MyCustomers.Title, MyCustomers.FirstName, MyCustomers.LastName, MyCustomers.Designation, MyCustomers.LandLine, MyCustomers.Mobile, MyCustomers.Email, MyCustomers.FAX);

布局文件:

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"/> 变量中。

Solution

答案 1 :(得分:0)

所以你要解析xml并将字符串“\ ud83d”作为6个字符向下发送?它做了它应该做的事情。如果要解决此问题,则需要自己解析字符串并将这些序列转换为正确的unicode点。或者你需要让服务器发送unicode点而不是逃避它们。