我需要从Android到iOS发送任何类型的表情符号国旗的unicode(例如\ u1f1e7 \ u1f1ea)。
这是我的代码:
String regexPattern = "[\\ud83c\\udc00-\\ud83c\\udfff]|[\\ud83d\\udc00-\\ud83d\\udfff]|[\\u2600-\\u27ff]";
byte[] utf8 = text.getBytes("UTF-8");
String string1 = new String(utf8, "UTF-8");
Pattern pattern = Pattern.compile(regexPattern);
Matcher matcher = pattern.matcher(string1);
List<String> matchList = new ArrayList<String>();
while (matcher.find()) {
matchList.add(matcher.group());
}
for (int i = 0; i < matchList.size(); i++) {
int unicode = Character.codePointAt(matchList.get(i), 0);
text = text.replace(StringEscapeUtils.unescapeJava(encodeCodepoint(unicode)), matchList.get(i));
System.out.println(i + ":" + matchList.get(i));
}
第一个问题:匹配器未检测到unicode。
第二个问题:如果我直接将unicode StringEscapeUtils.unescapeJava(text)
发送到iOS设备,则会收到:u1f1e7u1f1ea。
基本上我正在尝试将国旗emojis发送到iOS设备,但我不能。其他emojis就像面孔一样成功发送。