【问题标题】:System.Windows.Copy() does not work with EmojisSystem.Windows.Copy() 不适用于表情符号
【发布时间】:2017-06-30 00:38:47
【问题描述】:

我一直在尝试以各种方式将表情符号复制到剪贴板,但没有任何效果。表情符号只是简单地替换了空格。

Clipboard.SetText(message, TextDataFormat.UnicodeText);

我尝试了各种转换,但它们也没有给出任何结果。

虽然,如果我将相同的表情符号粘贴到 TextBox,然后尝试将其复制回来 - 它可以工作。我什至尝试从代码隐藏创建一个文本框,用我的消息填充它并再次复制它 - 不起作用。

【问题讨论】:

  • 这些表情符号的 Unicode 格式是否正确?
  • 你能提供一个这样的表情符号的例子(不起作用)吗?
  • @SpencerWieczorek 是的。 char.ConvertToUtf32(upper, lower) 返回正确的 dec 代码,例如128076 为“??????”。 @Alexei,没有工作。像这样 ????还是????

标签: c# wpf clipboard emoji


【解决方案1】:

我使用了以下示例,它对我有用:

    public MainWindow()
    {
        InitializeComponent();

        TextBlock tb = new TextBlock();
        var ch = char.ConvertFromUtf32(128076);
        tb.Text = ch.ToString();
        Clipboard.SetText(ch.ToString(), TextDataFormat.UnicodeText);
        tb.Text += Clipboard.GetText(TextDataFormat.UnicodeText);
        this.Content = tb;
    } 

TextBlock.Text 是??。也许问题在于您如何管理获取文本!

【讨论】:

  • 这似乎可以解决问题。我试图将文本粘贴到文本框,选择它然后复制它。它似乎仍然是某种错误,因为这是一种复制内容的黑客方式,不是吗?
  • 不知道你的方法。解释更多,也许我们可以提供帮助。这个例子表明 Clipboard.SetText(...) 和 Unicode 之间没有任何问题!
  • 经过进一步调查,我注意到我需要做的就是在带有表情符号的字符串上调用ToString() 方法。看起来很奇怪。
猜你喜欢
  • 2016-04-29
  • 2017-06-24
  • 2021-06-03
  • 1970-01-01
  • 2018-06-22
  • 2023-01-05
  • 1970-01-01
  • 2022-07-14
  • 2018-03-20
相关资源
最近更新 更多