我有一个用UTF-8编码的字符串.例如:
Thats a nice joke
Run Code Online (Sandbox Code Playgroud)
我必须提取句子中的所有表情符号.表情符号可以是任何表情符号
当在终端使用命令查看此句子时,less text.txt它被视为:
Thats a nice joke <U+1F606><U+1F606><U+1F606> <U+1F61B>
Run Code Online (Sandbox Code Playgroud)
这是表情符号的相应UTF代码.emojis的所有代码都可以在emojitracker找到.
为了找到所有的出现,我使用了正则表达式模式,(<U\+\w+?>)但它不适用于UTF-8编码的字符串.
以下是我的代码:
String s="Thats a nice joke ";
Pattern pattern = Pattern.compile("(<U\\+\\w+?>)");
Matcher matcher = pattern.matcher(s);
List<String> matchList = new ArrayList<String>();
while (matcher.find()) {
matchList.add(matcher.group());
}
for(int i=0;i<matchList.size();i++){
System.out.println(matchList.get(i));
}
Run Code Online (Sandbox Code Playgroud)
这个pdf说Range: 1F300–1F5FF for Miscellaneous Symbols and Pictographs.所以我想捕捉这个范围内的任何角色.
以UTF-8格式保存源代码有多重要?
Windows上的Eclipse默认使用CP1252字符编码.CP1251格式意味着可以保存非UTF-8字符,如果您从Word文档中复制并粘贴注释,我会看到这种情况.
我问的原因是因为出于习惯,我将Maven编码设置为UTF-8格式,最近它捕获了一些不可映射的错误.
(更新)请添加任何理由以及为什么,是否有一些应该知道的常见问题?
(更新)你的目标是什么?为了找到最佳实践,所以在问我们为什么要使用UTF-8时,我有一个很好的答案,现在我没有.
我正在开发Android应用程序,我不希望人们在输入中使用表情符号.
如何从字符串中删除表情符号字符?