java过滤utf8mb4表情符号
2015-09-16 10:11
501 查看
一、mysql设置utf8mb4编码
目前mysql5.5以上的版本是可以支持utf8mb4编码的,我用的是mysql5.6。关于mysql设置存储utf8mb4,参考http://www.w2bc.com/Article/8533,也可以在navicat中选择某一个属性,直接设置,如下图。
二、过滤表情符
我最终的目的是把文本从mysql再导入到R语言中来进行文本处理,但目前R3.2.2版本貌似并不支持utf8mb4,只能使用utf8来读取文本,但是mysql里使用的是utf8mb4,对于含有表情符的文本,读入到R中就是NA,是不行的,所以考虑过滤掉这些表情符号。使用java过滤表情符,其实就是查找替换的过程,使用pattern,和matcher这两个类就可以解决。
java过滤表情符代码:
定义了Filter接口:
逐行过滤文本main:
参考:/article/7686991.html
emoji处理:/article/2780589.html
目前mysql5.5以上的版本是可以支持utf8mb4编码的,我用的是mysql5.6。关于mysql设置存储utf8mb4,参考http://www.w2bc.com/Article/8533,也可以在navicat中选择某一个属性,直接设置,如下图。
二、过滤表情符
我最终的目的是把文本从mysql再导入到R语言中来进行文本处理,但目前R3.2.2版本貌似并不支持utf8mb4,只能使用utf8来读取文本,但是mysql里使用的是utf8mb4,对于含有表情符的文本,读入到R中就是NA,是不行的,所以考虑过滤掉这些表情符号。使用java过滤表情符,其实就是查找替换的过程,使用pattern,和matcher这两个类就可以解决。
java过滤表情符代码:
定义了Filter接口:
public interface Filter { String filter(String str); }表情符过滤器类EmojiFilter:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class EmojiFilter implements Filter { @Override public String filter(String str) { if(str.trim().isEmpty()){ return str; } String pattern="[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]"; String reStr=""; Pattern emoji=Pattern.compile(pattern); Matcher emojiMatcher=emoji.matcher(str); str=emojiMatcher.replaceAll(reStr); return str; } }
逐行过滤文本main:
import java.io.*; public class main { public static void main(String[] args) { String fin="F:/in.txt"; String fon="F:/out.txt"; EmojiFilter filter=new EmojiFilter(); try { File filename = new File(fin); InputStreamReader reader = new InputStreamReader( new FileInputStream(filename)); BufferedReader br = new BufferedReader(reader); File writename = new File(fon); writename.createNewFile(); BufferedWriter out = new BufferedWriter(new FileWriter(writename)); String line = ""; line = br.readLine(); while(line!=null){ System.out.println(line); line=filter.filter(line); out.write(line+"\n"); out.flush(); line = br.readLine(); } out.close(); } catch (Exception e) { e.printStackTrace(); } } }基础上可以过滤掉emoji表情符啦!!再导入mysql中,采用utf8编码,实测没有错误!
参考:/article/7686991.html
emoji处理:/article/2780589.html
相关文章推荐
- Java随机生成18位身份证号
- 使用fat jar打包java项目
- Spring MVC ContentNegotiatingViewResolver 样例
- test2.2
- 在eclipse导入Java 的jar包的方法 JDBC【图文说明】
- Eclipse Java代码补全
- java接口
- test2.1
- Java TreeMap 源码解析
- 简单介绍 java enumeration
- Java String的hashCode实现
- java得到各种路径的方法
- MonkeyRunner于Windows在下面Eclipse开发环境的搭建步骤(并解决在线Jython配置错误的问题)
- java-encodeURI decodeURI 解决地址传参乱码问题
- Java泛型的类型擦除
- Hadoop 笔记 Eclipse导入Hadoop Jar包
- SpringMVC+JPA+SpringData配置
- java File的简单用法
- Struts2标签取值方式
- 学习笔记之MyEclipse里各个文件名前的小标记都代表的意思