我有Xamarin.Forms项目。我有文本框,并有一个按钮,从文本框中获取文本并将其传递给API进行存储。现在关键是当用户从键盘选择任何表情符号时,我想获得表情符号的unicode字符。目前,当我检查它的Text
属性时,我会自动获得表情符号。
我想从NewTextValue
属性的Text
中获取Unicode而不是表情符号。
这篇文章是一样的,但我不明白这个人是如何管理的。 POST
请建议。
在谷歌之后,我尝试了以下内容。
string res = BitConverter.ToString(Encoding.BigEndianUnicode.GetBytes(str)).Replace("-", "");
这是结果res = D83DDE00
我不知道上面的代码是unicode还是没有。
如何转换回原始表情符号,还是有其他方式转换为unicode? p>
答案 0 :(得分:0)
我们需要手动将其转换回来。插入" - "每两个字符:
var convertStr = string.Join("-", Regex.Matches(res, @"..").Cast<Match>().ToList());
String[] tempArr = convertStr.Split('-');
byte[] decBytes = new byte[tempArr.Length];
for (int i = 0; i < tempArr.Length; i++)
{
decBytes[i] = Convert.ToByte(tempArr[i], 16);
}
String str = Encoding.BigEndianUnicode.GetString(decBytes);
此外,在我的测试中,Encoding.UTF32.GetBytes()
可能更接近表情符号代码。您可以使用\U0001F600
对其进行测试,这是一张微笑图片。用utf32转换后,字节只是改变了它的顺序。