我有一个变量(表情符号),它包含一个字符串\ud83d\ude03
,我从解析xml中得到它。它们是表情符号编码。问题是当我尝试以下列方式打印它们时:
editText.setText(emoji)
输出为\ud83d\ude03
然而,当我这样做时:
editText.setText("\ud83d\ude03")
输出是笑脸。这有什么工作吗?我认为问题是我的反斜杠正在逃脱。我无法更改xml文件,因此我尝试在java中转换字符串无效。
答案 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"/>
变量中。
答案 1 :(得分:0)
所以你要解析xml并将字符串“\ ud83d”作为6个字符向下发送?它做了它应该做的事情。如果要解决此问题,则需要自己解析字符串并将这些序列转换为正确的unicode点。或者你需要让服务器发送unicode点而不是逃避它们。