【发布时间】:2017-10-30 11:33:04
【问题描述】:
我正在尝试使用意图发送文本。我认为这是直截了当的:
public Intent getIntent() {
final Intent intent = new Intent();
intent.setComponent(new ComponentName(packageName, ri.activityInfo.name));
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, getText());
return intent;
}
private String getText(){
// the emoji can be one of many. I removed all that for brevity
final int unicode = 0x1F3C5;
final String emoji = String.valueOf(Character.toChars(unicode));
// final String emoji = "\n1F3C5"; //didn't work either
// I also tried using HTML here but I think I have some wires crossed, so I am not ruling that out yet
return textPartOne + " " + emoji + " " + textPartTwo;
}
如您所见,EXTRA_TEXT 中有一个特殊字符(表情符号)。当文本从设备A 发送时,表情符号会像我在消息中所期望的那样出现。但是在设备B(接收者)上,文本显示出一些疯狂(通常在两个不同的消息中):
@.£¡ù¿ ¡ |
@H£(ù@æ@a@¤¥¡
¡9@ü@Hù@Θ@=@ø¥p
¡6@Ö@Δì¿¡|
无论我将消息从设备A 发送到设备B 还是从B 发送到A 都没有关系。无论哪种方式,我都得到相同的结果,所以我相信表情符号不受支持不是问题。
现在,如果我删除除表情符号之外的所有代码:
Xäx&
如果我完全删除表情符号代码,它就像一个魅力。
但是客户有必须有那些表情符号...
????
其他一些可能需要注意的事项:
我正在使用 this to manage what intents 我正在向用户展示。他们可以选择彩信、电子邮件、Twitter、Facebook 或其他任何东西。我需要支持所有这些
我没有在应用程序的任何地方显示表情符号。它们将显示在短信、电子邮件或 Facebook/Twitter 提要中。
这个应用程序的 iOS 变体已经成功地做到了这一点。
我have 尝试了nearly 和dozen 不同的ways 和no 都有效。 有没有人可能对如何正确发送特殊字符有所了解?
编辑:
如您所见,我正在发送我想要的表情符号。但结果与我预期的相差甚远。这是模拟器向自身发送文本的屏幕截图。
这里是一些我尝试过的方法
String attempt1 = "--";
try {
attempt1 = Html.fromHtml(new String("🏅".getBytes("UTF-8"))).toString();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
final int codePoint = 0x26F7;
final String attempt2 = new String(new int[]{codePoint}, 0, 1);
final String attempt3 = new String(Character.toChars(codePoint));
final String attempt4 = "\u26F7";
所有结果:
&n
如果我向这些添加文本:
final String attempt4 = "COME ON: \u26F7";
我明白了:
@Σ£(ù@æ@s@@£Å¡7@X£¿ù¿
这完全有道理他讽刺地说
【问题讨论】:
-
勾选这个答案发送表情符号stackoverflow.com/a/27183457/8084578
-
你在哪里显示这个表情符号?
-
@JaydeepPatel 我不显示它们。它们将显示在短信、电子邮件或 Facebook/Twitter 提要中。
-
@JaydeepPatel 这与 TextViews 无关
-
从这里尝试:emojipedia.org/…