编码问题&html实体转换

编码问题

hive中默认都是utf-8编码,但是有的数据格式不是utf-8编码,展示会出现问题,需要转换。
例:
%e8%bf%99%e4%b8%aa%e8%a3%85%e4%b8%8a%ef%bc%8c%e6%9d%af%e5%ad%90
在hive中需要转换,使用Hive调用Java类
string是需要转换编码的字符串
reflect('java.net.URLDecoder', 'decode', string, "utf-8")
常用编码:

utf-8 GBK (gbk) gb2313 GB18030 Unicode
0xA0+区号,0xA0+位号 \uXXXX

实体转换

html中的实体字符,暂时还未找到较好的转换函数
可以使用替换函数,全部替换成空格
例:
…•
使用替换函数
regexp_replace(string, '&[a-z0-9]*\;', ' ')

注意

;在hive中比较特殊,需要转义使用,否则会认为语句结束,报错。
\;,\073在一般函数中都可以使用,在正则中仅能使用\;

你可能感兴趣的:(编码问题&html实体转换)