【问题标题】:How to manage(represent/control) emoji in Xamarin.Form?如何在 Xamarin.Form 中管理(表示/控制)表情符号?
【发布时间】:2018-10-21 20:01:23
【问题描述】:

我想处理表情符号 3 分。

1- 表示表情符号:我有用户输入Entry(文本框)并在Label 中显示的功能。目前我使用Label 控件来显示文本。我想在Label 中显示用户选择的表情符号。如果我尝试在标签中显示该表情符号,它会显示??。我需要设置任何属性来表示符号还是需要更改控制?如果我需要更改控制,我应该使用哪个控制。

2- 在 API 中传递表情符号:我想保存用户输入的文本。目前我只使用 API 将文本保存到数据库。我想保存表情符号,但我不知道如何获取表情符号的编码字符。请注意,我将从 API 获取保存的文本以显示在标签中。所以,我必须能够从 API 中获取并表示它。

请建议。谢谢

【问题讨论】:

  • 前段时间我写了一篇关于这个主题的博文 => smellyc0de.wordpress.com/2018/04/07/…
  • @EvZ 谢谢。让我试试看。
  • @EvZ 我已经尝试并添加了有问题的屏幕截图。实际上我没有从文本框中得到编码文本。我试图通过文本框的文本更改事件进行检查。如果我需要改变什么,你能建议我吗?

标签: xamarin.forms xamarin.ios emoji


【解决方案1】:

1- 代表表情符号

这是一项简单的任务 - 您不必做任何特别的事情,您只需要做:

<Label x:Name="lbl" Text="{Binding Source={x:Reference Name=ent}, Path=Text" />
<Entry x:Name="ent" />

lb.Text = ent.Text;

表情符号应该在Label 中正确显示。

2- 在 API 中传递表情符号

这可能很棘手,它可能会破坏JSON 反序列化等。但这一切都取决于您的设置。尝试将其发送到 API 并尝试将其取回。如果有一些问题,请检查下一个线程以获得更好的想法:
how can I Deserialize emoji in json in C#
How do I remove emoji characters from a string?
等等。

【讨论】:

  • 谢谢。我明白你的意思了。现在的问题是如何获取字符串中所有表情符号的 unicode 字符?我在这里有单独的帖子:stackoverflow.com/questions/50385467/…。如果您对此有任何想法,可以帮帮我吗?
  • 经过一番谷歌,我尝试了以下。 string res = BitConverter.ToString(Encoding.BigEndianUnicode.GetBytes(str)).Replace("-", ""); 这是结果是res = D83DDE00。我不知道上面的代码是不是 unicode。如何转换回原始表情符号,或者有没有其他方法可以转换为 unicode?你的项目可以帮助我吗?请帮忙
  • 也许在将整个文本编码为 base64 后再将其发送到 API 并在显示给用户之前进行解码会更容易。只是。
猜你喜欢
  • 2020-03-06
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 2016-01-08
  • 2021-09-23
  • 2021-06-22
  • 2014-05-17
  • 1970-01-01
相关资源
最近更新 更多