背景:AvroParquetReader对象读取hdfs上的parquet文件,列内容中文乱码,如:å\u0085¬è¯\u0081ä¸\u009Aå\u008A¡ç±»å\u0088«æ\u009C\u0089误ï¼\u0081。
字符集中文乱码
Way 1:new String(bytes[],charset)进行转换
String value = "å\u0085¬è¯\u0081ä¸\u009Aå\u008A¡ç±»å\u0088«æ\u009C\u0089误ï¼\u0081";
value = new String(value .getBytes("iso-8859-1"),"utf-8");
System.out.println("value : " + value );
Way 2:URLEncoder、URLDecoder进行解码编码
String value= "æ¤å\u0085¬è¯\u0081书ä¸\u008Då\u0098å\u009C¨";
value= URLEncoder.encode(value, "ISO-8859-1");
value= URLDecoder.decode(value, "UTF-8");
System.out.println("value : " + value);
该博客探讨了在使用AvroParquetReader从HDFS读取Parquet文件时遇到的中文乱码问题。作者提供了两种解决方案:1) 使用newString(bytes[], charset)方法进行字节到字符串的转换;2) 结合URLEncoder和URLDecoder进行编码解码。这两种方法都是为了正确地将ISO-8859-1编码的字节转换为UTF-8编码的中文字符串。
3万+

被折叠的 条评论
为什么被折叠?



