【问题标题】:How to convert emojis from to unicode in Xamarin.forms?如何在 Xamarin.forms 中将 emojis 转换为 unicode?
【发布时间】:2018-05-17 07:12:36
【问题描述】:

我有 Xamarin.Forms 项目。我有一个文本框,并且有一个按钮,它从文本框中获取文本并将其传递给 API 进行存储。现在的重点是当用户从键盘选择任何表情符号时,我想获取表情符号的 unicode 字符。目前,当我检查它的Text 属性时,我正在自己获取表情符号。

我想从Text 属性中获得NewTextValue 中给出的Unicode 而不是表情符号。

这个帖子是一样的,但我不明白这家伙是怎么做到的。 POST

请提出建议。

经过一番谷歌,我尝试了以下。

string res = BitConverter.ToString(Encoding.BigEndianUnicode.GetBytes(str)).Replace("-", "");

这是结果res = D83DDE00 我不知道上面的代码是不是unicode。

我怎样才能转换回原来的表情符号,或者有没有其他方法可以转换成 unicode?​​p>

【问题讨论】:

    标签: xamarin.forms xamarin.ios


    【解决方案1】:

    我们需要手动将其转换回来。每两个字符插入“-”:

    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转换后,字节只是改变它的顺序。

    【讨论】:

    • 您的解决方案很有用。但每次检查这不是一个合适的方法。我所做的是,在 Base64 中转换整个字符串,反之亦然。
    猜你喜欢
    • 2019-02-08
    • 2018-03-15
    • 1970-01-01
    • 2021-08-30
    • 2017-02-24
    • 2013-09-07
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多