0

使用 uGUI 文本组件,我得到了“替换字符”,也就是我找不到删除它们的方法。

我从 Instagram api 获取一个字符串,其中包含我需要的两个非字母语言字符(例如日语)的 unicode 字符。

但是,表情符号的 unicode 字符作为替换字符 aka 出现。我不需要表情符号,它们可以被剥离,但是我找不到这样做的方法。

我无法使用 TextMeshPro,因为我无法生成具有显示各种语言所需的所有 unicode 字符的字体资产(这可能是用户错误,但当我尝试该过程时会挂起)。

我注意到这些 � 字符不会出现在 Inspector 或控制台中,因此必须有一种方法可以忽略或删除它们。

我正在设置这样的字符串

body.text = System.Uri.UnescapeDataString(postData.text);

我尝试了许多没有用的东西,包括

    body.text = body.text.Replace('\uFFFD','\'');//doesn't work
    body.text = Regex.Replace(body.text, @"^[\ufffd]", string.Empty);//doesn't work

我还尝试将字符串分解为 char 数组。当我尝试打印到控制台时,遇到替换字符时出现此错误:

    foreach (char item in postData.text.ToCharArray())
                print(item); //Error: UTF-16 to UTF-8 conversion failed because the input string is invalid

对此的任何帮助将不胜感激!谢谢你。

统一2018.4.4,c#

替换字符可以在这里看到

4

1 回答 1

1

找到了答案!这篇文章提供了一个解决方案:如何从字符串中删除表情符号字符?

body.text = Regex.Replace(body.text, @"\p{Cs}", "");
于 2019-12-31T14:16:38.273 回答