错误描述:在50075查看hdfs数据文件中有 & 符号时,中文数据乱乱码
错误原因:系统默认字符集:Charset.defaultCharset().name() 为UTF-8,但是在系统在web程序中取出得编码值为:US-ASCII。在字符串编码时,默认使用的是US-ASCII字符集,该字符集应该是UTF-8子集中的单字符集,导致中文无法由byte拼装还原。
参考:String类
public String(byte bytes[], int offset, int length)
public byte[] getBytes()
URL地址:http://datanode:50075/browseBlock.jsp?blockId=1073779813&blockSize=15&genstamp=1099511816876&filename=%2Ftmp%2Fwankun%2Faccountinput%2Fd&datanodePort=50010&namenodeInfoPort=50070&nnaddr=192.168.39.123:8020
问题解决:
包:hadoop-common-2.3.0-cdh5.0.1.jar
类:org.apache.hadoop.http.HtmlQuoting
修改代码:
public static String quoteHtmlChars(String item) {
if (item == null) {
return null;
}
byte[] bytes = item.getBytes(Charsets.UTF_8);
if (needsQuoting(bytes, 0, bytes.length)) {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
try {
quoteHtmlChars(buffer, bytes, 0, bytes.length);
return buffer.toString("UTF-8");
} catch (IOException ioe) {
// Won't happen, since it is a bytearrayoutputstream
}
return item;
} else {
return item;
}
}
备注:
1. UTF-8={US-ASCII + 多字符集}
2. 字符串解码还原时,使用的是UTF-8字符集
3. 单独测试,系统默认用UTF-8进行编码,但是HtmlQuoting中却用US-ASCII编码
相关推荐
例如,使用Hadoop命令行执行`hadoop fs -cat`查看文件内容时,如果文件不是UTF-8编码,可以通过`iconv`工具先转换编码再查看。 6. **源码分析**: 对于开发者来说,深入理解Hadoop源码有助于找出乱码的根源。可以...
在本项目中,我们主要探讨的是如何利用SpringBoot...通过这些技术的结合,我们可以构建一个高效且安全的系统,允许用户在Web应用中无缝访问存储在Hadoop集群中的大数据,同时解决了在IE浏览器中显示图片的兼容性问题。
为了统一数据库的字符集为UTF-8,可以在MySQL的配置文件(如`my.cnf`或`my.ini`)中添加以下内容: ```plaintext [client] default-character-set=utf8 [mysqld] default-character-set=utf8 collation-server=utf...
根据提供的文件信息,我们可以从标题、描述以及部分内容中提炼出一系列与Flink和HBase相关的关键技术知识点。以下是对这些知识点的详细阐述: ### FlinkHBase场景化解决方案 #### 标题解读 - **Flink**:Apache ...
在大数据处理领域,Hive是一款基于Hadoop的数据仓库工具,它允许用户使用SQL类查询语言(HQL)来处理存储在Hadoop分布式文件系统(HDFS)中的大规模数据集。然而,早期版本的Hive并不直接支持中文字符,这在处理包含...
3. 开源技术:文档中出现了OpenStack、Cloud Foundry、Docker、Hadoop等,这些是开源技术的代表,许多企业在构建自己的云计算平台和大数据解决方案时,选择这些技术以降低成本和提升灵活性。 4. 编程语言和开发工具...
至于标签中的"大数据",在这个场景中可能是指Spring框架可以与大数据处理技术(如Hadoop、Spark等)集成,但这里并没有直接涉及大数据的具体配置。 总结来说,SS整合的核心在于正确配置Maven依赖、`web.xml`以及...
- 进入到`opentsdb-2.1.0/src/graph`目录下的`Plot.java`文件,在第280行处添加相应的代码,以解决中文乱码问题。 **5. 编译** - 使用以下命令编译: ```bash ./build.sh ``` **6. 创建 HBase 表并运行** ...
在给定的文件信息中,虽然大部分内容似乎是乱码或者非结构化数据,但我们可以从中抽取出与IT行业,特别是与Java相关的知识点进行探讨。由于直接的信息量有限,我们将基于标题“JAVA分析”来深入讨论Java编程语言的...
虽然提供的部分内容看起来是乱码或格式错误的信息,但从标题、描述和标签中,我们可以提炼出以下关键知识点: ### 1. IBM Informix 数据库简介 IBM Informix 是一款高性能的关系型数据库管理系统(RDBMS),广泛...
由于提供的文件内容中存在大量的重复词汇和乱码,这可能是由于OCR扫描文档的识别错误导致的。这使得直接从提供的文本中提取准确的知识点变得非常困难。然而,我将尝试根据文件的标题和描述,结合我对Java就业市场的...