字符集中文乱码转换为UTF8,如:å\u0085¬è¯\u0081ä¸\u009Aå\u008A¡ç±»å\u0088«æ\u009C\u0089误ï¼\u0081

该博客探讨了在使用AvroParquetReader从HDFS读取Parquet文件时遇到的中文乱码问题。作者提供了两种解决方案:1) 使用newString(bytes[], charset)方法进行字节到字符串的转换;2) 结合URLEncoder和URLDecoder进行编码解码。这两种方法都是为了正确地将ISO-8859-1编码的字节转换为UTF-8编码的中文字符串。
部署运行你感兴趣的模型镜像

背景: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);

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

这个错误表明 Kafka 的配置文件中 `node.id` 的值无效,具体原因是它被设置为 `1 # 每个节点ID`(包含注释符号 `#` 和空格),导致 Kafka 无法将其解析为整数类型(`INT`)。以下是详细分析和解决方案: --- ### **错误原因** 1. **配置格式错误**: - `node.id=1 # 每个节点ID` 中的 `#` 和后续内容被 Kafka 视为值的一部分,导致解析失败。 - Kafka 要求配置值必须是纯数字(如 `1`),不能包含注释或空格。 2. **配置文件语法问题**: - 在 Kafka 的配置文件中,`#` 是注释符号,但**不能出现在值中间**。如果需要注释,必须另起一行。 --- ### **解决方法** #### 1. **修正 `server.properties` 文件** - 打开配置文件(路径可能是 `/opt/kafka_2.13-3.9.1/config/server.properties`)。 - 找到 `node.id` 配置项,确保它的值是纯整数,例如: ```properties node.id=1 ``` - 如果需要注释,单独写在一行: ```properties # 每个节点ID(KRaft模式必需) node.id=1 ``` #### 2. **检查其他可能的问题** - **空格或隐藏字符**:确保值前后没有空格或特殊字符(如 `node.id= 1` 或 `node.id=1 ` 也会报错)。 - **文件编码**:如果文件是 Windows 格式(CRLF),可能会引入隐藏字符。用 `dos2unix` 转换: ```bash dos2unix /opt/kafka_2.13-3.9.1/config/server.properties ``` #### 3. **验证配置文件** - 使用 `grep` 检查 `node.id` 的值: ```bash grep "node.id" /opt/kafka_2.13-3.9.1/config/server.properties ``` - 输出应为: ``` node.id=1 ``` --- ### **完整示例(KRaft模式配置)** 如果使用 Kafka 的 **KRaft 模式**(无 ZooKeeper),`server.properties` 必须包含以下关键配置: ```properties # KRaft模式必需配置 process.roles=broker,controller node.id=1 controller.quorum.voters=1@localhost:9093 listeners=PLAINTEXT://:9092,CONTROLLER://:9093 advertised.listeners=PLAINTEXT://localhost:9092 ``` --- ### **常见问题排查** 1. **错误配置示例**: ```properties node.id=1 # 注释(错误!会导致解析失败) ``` - **问题**:`#` 被视为值的一部分。 - **修复**:删除 `#` 或移到单独一行。 2. **值包含空格**: ```properties node.id= 1 ``` - **问题**:值前有空格。 - **修复**:删除空格:`node.id=1`。 3. **非数字值**: ```properties node.id=one ``` - **问题**:值不是整数。 - **修复**:改为数字:`node.id=1`。 --- ### **总结** - **根本原因**:`node.id` 的值包含非法字符(`#`、空格或注释)。 - **关键修复**:确保配置值为纯整数(如 `node.id=1`),注释单独成行。 - **扩展建议**:使用 `grep` 或文本编辑器检查配置文件,避免隐藏字符或格式错误。 --- ### **示例修复流程** ```bash # 1. 编辑配置文件(使用vim/nano) vim /opt/kafka_2.13-3.9.1/config/server.properties # 2. 修正node.id(删除注释和空格) # 原内容: # node.id=1 # 每个节点ID # 修改为: node.id=1 # 3. 保存文件并重启Kafka /opt/kafka_2.13-3.9.1/bin/kafka-server-start.sh /opt/kafka_2.13-3.9.1/config/server.properties ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值