【问题标题】:How can I put a ????, or any other emoji inside an XML string?如何在 XML 字符串中放置 ???? 或任何其他表情符号?
【发布时间】:2016-01-22 03:45:55
【问题描述】:

我该怎么做? 我对 Java 和 Android 很陌生,并且遇到了上述问题。 当我将表情符号粘贴到 xml 文件中时,它会显示一个白色方块和另一个“复制”下一个字符的奇怪字符。

知道如何解决这个问题吗?

【问题讨论】:

标签: android utf


【解决方案1】:

尝试使用这个库 - emoji-java
我知道你想要一种 XML 方式,这就是 Java
可能对你有帮助

示例

String str = "An ?awesome ?string with a few ?emojis!";
String result = EmojiParser.parseToAliases(myString);
System.out.println(myString);
// Prints:
// "An 😀awesome 😃string with a few 😉emojis!"

【讨论】:

  • 所以你建议对表情符号进行硬编码,它可能会工作......我会尽快尝试图书馆。
  • 非常感谢,该库非常完美且易于使用。我现在必须修复我的项目的主要算法以使用字符串而不是字符。事实证明,我真的不需要对字符进行硬编码,因为在 xml 文件中用相应的别名替换它们就足够了。
  • 输出仍然使我的 Android 5.1 测试应用程序崩溃。
  • Android 4.0.3 崩溃
【解决方案2】:

您可以将表情符号放在 XML 中,而方块只是编辑器呈现它无法识别的字符的方式,就像所有其他字符一样,您可以通过其 UTF8 值指定字符。

例如,? 的 char 值为 128515,因此您可以使用 😃 来指定它。这与您需要使用 < 在 xml 中指定文字“

但是,在撰写此答案时,在(例如)strings.xml 中使用这些标记作为字符串常量会导致您的应用程序崩溃,并且错误会一直下降到您的 android 应用程序的 JNI 级别(C++代码)。

JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xf0

我没有资格说这会在多大程度上限制您在 android 中使用表情符号,但我可以肯定地说您不能将表情符号添加到 android xml 文件中(即不会使您的应用程序崩溃) .

【讨论】:

  • XML 中的表情符号支持似乎从 Android 7 开始就可以工作了。(但 Android 5 仍在崩溃。)
猜你喜欢
  • 1970-01-01
  • 2014-04-06
  • 1970-01-01
  • 1970-01-01
  • 2019-08-31
  • 2015-03-17
  • 2011-03-02
  • 2020-06-01
  • 1970-01-01
相关资源
最近更新 更多