当前位置: 首页 > news >正文

如何解决 java.nio.charset.CoderMalfunctionError: 编码器故障错误问题?亲测有效的解决方法!

java.nio.charset.CoderMalfunctionError 是一个在 Java 中相对较少遇到的异常,通常与字符编码转换过程中的错误有关。当 Java 程序在进行字符编码转换时,遇到无法处理的字符或编码故障时,就会抛出该异常。

1. 问题描述

java.nio.charset.CoderMalfunctionError 异常发生时,通常是在使用 CharsetEncoderCharsetDecoder 进行字符编码转换时发生故障。它的根本原因通常是以下几种情况:

  • 试图将不支持的字符编码进行转换。
  • 使用不正确的字符集进行编码或解码。
  • 在进行字符编码转换时,数据损坏或格式错误。

这类错误的具体原因通常比较难以追踪,因为它通常是在底层的编码解码过程中抛出的,但可以通过分析代码和调试定位问题。

2. 常见的触发原因

2.1 使用不支持的字符集

在进行字符编码转换时,如果使用了一个 Java 不支持的字符集,或者字符集不符合编码标准,就可能抛出 CoderMalfunctionError。例如,Charset 类没有提供对某些非标准字符集的支持。

2.2 字符串数据损坏

如果字符串数据本身在传输或存储时发生了损坏,导致它无法正确解码,也可能引发编码器故障错误。

2.3 编码不匹配

如果你试图将一个已被错误编码的字节流进行解码,或者使用与数据格式不匹配的编码进行转换,也可能触发 CoderMalfunctionError

3. 解决思路

3.1 确保使用正确的字符编码

确保你在进行字符编码转换时使用的字符集是正确的,并且是 Java 支持的标准字符集。如果可能,尽量使用标准的字符集,例如 UTF-8ISO-8859-1 等。

3.2 校验数据源的编码

如果你的数据来源是网络传输、文件读取等外部来源,确保数据在传输过程中没有发生损坏。可以通过对数据进行校验和使用适当的校验码(如 CRC、MD5 等)来确保数据的完整性。

3.3 使用 CharsetDecoderCharsetEncoder 时捕获异常

在使用 CharsetDecoderCharsetEncoder 进行转换时,可以通过捕获并处理相关异常(如 CharacterCodingException)来避免 CoderMalfunctionError 的发生。

3.4 使用 Charset.forName() 动态获取编码

如果你不确定要使用的编码是否正确,可以使用 Charset.forName() 动态获取编码,并进行相应的处理。

4. 解决方法

4.1 确保使用正确的编码

在进行编码转换时,确保使用正确的字符集。例如,在读取文件时,可以指定字符集来避免编码错误。

示例代码:
import java.nio.charset.Charset;
import java.nio.charset.CoderMalfunctionError;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;public class CharsetExample {public static void main(String[] args) {String filePath = "example.txt";try {// 读取文件时指定字符集byte[] bytes = Files.readAllBytes(Paths.get(filePath));String content = new String(bytes, StandardCharsets.UTF_8);  // 使用UTF-8进行解码System.out.println(content);} catch (java.io.IOException e) {e.printStackTrace();} catch (CoderMalfunctionError e) {// 捕获CoderMalfunctionError并输出相关信息System.err.println("编码器故障错误: " + e.getMessage());}}
}

在上面的例子中,我们在读取文件并解码时明确指定使用 UTF-8 编码,这样可以避免因字符编码不匹配而导致的 CoderMalfunctionError 异常。

4.2 校验文件的编码

如果你不确定文件的编码,使用文件编码检测工具来确保文件的字符集是正确的。如果文件的编码是未知的,可以使用 CharsetDetector(例如 ICU4J)库来尝试检测文件的字符编码。

示例代码(使用 ICU4J 进行编码检测):
import com.ibm.icu.text.CharsetDetector;
import com.ibm.icu.text.CharsetMatch;
import java.io.FileInputStream;
import java.io.IOException;public class CharsetDetectorExample {public static void main(String[] args) {String filePath = "example.txt";try (FileInputStream inputStream = new FileInputStream(filePath)) {CharsetDetector detector = new CharsetDetector();detector.setText(inputStream);CharsetMatch match = detector.detect();// 输出检测到的编码System.out.println("检测到的字符集: " + match.getName());} catch (IOException e) {e.printStackTrace();}}
}

这个例子中,我们使用了 ICU4J 的 CharsetDetector 来检测文件的编码,确保读取文件时使用正确的字符集。

4.3 处理编码转换中的异常

在进行编码转换时,我们可以通过捕获 CharacterCodingException 来处理可能发生的异常。这样可以避免由于编码故障导致的 CoderMalfunctionError 异常。

示例代码:
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.CharacterCodingException;
import java.nio.charset.Charset;
import java.nio.charset.CoderMalfunctionError;
import java.nio.charset.StandardCharsets;public class CharsetConversionExample {public static void main(String[] args) {String inputString = "Hello, World!";try {// 将字符串转换为字节数组ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(inputString);// 尝试解码字节数组CharBuffer charBuffer = StandardCharsets.UTF_8.decode(byteBuffer);System.out.println("解码后的字符串: " + charBuffer.toString());} catch (CharacterCodingException e) {// 处理编码转换错误System.err.println("字符编码转换异常: " + e.getMessage());} catch (CoderMalfunctionError e) {// 处理编码器故障错误System.err.println("编码器故障错误: " + e.getMessage());}}
}

在此示例中,我们使用 Charset.encode() 将字符串转换为字节缓冲区,并通过 Charset.decode() 尝试将其解码为字符。如果字符编码转换过程出错,会捕获 CharacterCodingExceptionCoderMalfunctionError

5. 预防措施

  1. 始终使用标准编码:尽量使用常见的编码标准,如 UTF-8,而不是一些可能不被支持或不常见的编码格式。
  2. 校验和处理数据:如果数据来源不确定或无法保证格式正确,使用校验和等手段确保数据完整性。
  3. 捕获编码异常:始终捕获 CharacterCodingExceptionCoderMalfunctionError,确保在编码转换失败时能够处理异常并记录详细信息。

6. 总结

java.nio.charset.CoderMalfunctionError 是由于编码转换失败引发的错误。要解决这个问题,确保你使用正确的字符集,校验输入数据的编码,并妥善处理编码转换中的异常。通过这些方法,你可以有效地避免或解决 CoderMalfunctionError 异常。

相关文章:

如何解决 java.nio.charset.CoderMalfunctionError: 编码器故障错误问题?亲测有效的解决方法!

java.nio.charset.CoderMalfunctionError 是一个在 Java 中相对较少遇到的异常,通常与字符编码转换过程中的错误有关。当 Java 程序在进行字符编码转换时,遇到无法处理的字符或编码故障时,就会抛出该异常。 1. 问题描述 java.nio.charset.C…...

电气自动化 基于PLC控制的四路抢答器设计

摘要 本文描述了一款用三菱FX3U-48M可编程控制器设计的四路抢答器的系统构成、设计思路和功能。此抢答系统除了有基本抢答功能之外,还有计时、计算得分、亮灯提提示以及蜂鸣提醒功能。程序中设定答题时间,在主持人未按下开始抢答按钮之前,选…...

GA优化后的RBF神经网络

遗传算法(Genetic Algorithm, GA)优化后的RBF(Radial Basis Function)神经网络是一种结合进化算法与神经网络的混合模型,用于改进RBF神经网络的性能。以下是该模型的基本原理和相关公式: clear all close a…...

Scala:正则表达式

object test03 {//正则表达式def main(args: Array[String]): Unit {//定义一个正则表达式//1.[ab]:表示匹配一个字符,或者是a,或者是b//2.[a-z]:表示从a到z的26个字母中的任意一个//3.[A-Z]:表示从A到Z的26个字母中的任意一个//4.[0-9]:表示从0到9的10…...

vulnhub靶场之【hacksudo】1.0.1

前言 靶机:hacksudo 192.168.1.45 攻击:kali 192.168.1.16 都是虚拟机环境,桥接模式 主机发现 使用netdiscover或者arp-scan -l扫描 netdiscover -r 192.168.1.1/24信息收集 使用nmap扫描 因为看到2222是ssh服务,所以又扫…...

第4章:颜色和背景 --[CSS零基础入门]

在 CSS 中,颜色和背景属性是用于美化网页元素的重要工具。你可以通过多种方式定义颜色,并且可以设置元素的背景颜色、图像、渐变等。以下是关于如何在 CSS 中使用颜色和背景的一些关键点和示例。 1.颜色表示法 当然!以下是使用不同颜色表示…...

Python实现PBKDF2_SHA256加密密码

加密保存格式:pbkdf2_sha256$迭代次数$盐$哈希值 admin可能的结果:pbkdf2_sha256$10000$yzsusUJwrGfonwZzVxlnA$vgf/OgLf5C4wtQLtfNY9d68Hhxgv8eqZ0mwfxCqqeU import os import hashlib import base64 def password_encrypt(password, saltNone, iterations1000…...

React第十三节开发中常见问题之(视图更新、事件处理)

一、视图更新有哪些方案&#xff1f; 1、对于数据变量 正常的增删改查&#xff0c;只会让数据更新&#xff0c;但是不会触发 React 视图的更新&#xff1b; 如&#xff1a; <script lang"jsx">const baseTable [{name:Andy, age: 18, id: 1},{name:Jack, a…...

PyTorch 深度学习框架简介:灵活、高效的 AI 开发工具

PyTorch 深度学习框架简介&#xff1a;灵活、高效的 AI 开发工具 PyTorch 作为一个深度学习框架&#xff0c;以其灵活性、可扩展性和高效性广受欢迎。无论是在研究领域进行创新实验&#xff0c;还是在工业界构建生产级的深度学习模型&#xff0c;PyTorch 都能提供所需的工具和…...

Vue 3 中的计算属性(Computed Properties)详解

目录 Vue 3 中的计算属性&#xff08;Computed Properties&#xff09;详解 引言 什么是计算属性&#xff1f; 创建和使用计算属性 示例 1&#xff1a;基本用法 示例 2&#xff1a;带有 getter 和 setter 的计算属性 计算属性 vs 方法 Vue 3 中的计算属性&#xff08;Co…...

RocketMQ 过滤消息 基于tag过滤和SQL过滤

RocketMQ 过滤消息分为两种&#xff0c;一种tag过滤&#xff0c;另外一种是复杂的sql过滤。 tag过滤 首先创建producer然后启动&#xff0c;在这里创建了字符串的数组tags。字符串数组里面放置了多个字符串&#xff0c;然后去发送15条消息。 15条消息随着i的增长&#xff0c;…...

AI开发: 知识图谱的初识,学会制作知识图谱- Python 机器学习

一、知识图谱的概念 知识图谱是一个通过图结构来表示和组织知识的工具&#xff0c;它将事物、概念和它们之间的关系以图的形式呈现出来&#xff0c;图中的节点代表实体&#xff08;比如人物、地点、事件等&#xff09;&#xff0c;而边代表这些实体之间的各种关系&#xff08;…...

windows系统的环境变量(系统变量)不能编辑可能是这个原因

有些电脑从开始菜单那搜索“环境变量”后是没法编辑系统变量的&#xff0c;只能从设置里面进”环境变量“来进行编辑。 可以观察到系统环境变量即便是点击到了,但还是无法进行编辑...

各种服务器使用 yum 安装 nginx

1. 在Red Hat Enterprise Linux (RHEL) 及其衍生版本&#xff08;如CentOS, Oracle Linux, Rocky Linux, AlmaLinux&#xff09;上安装Nginx的步骤如下&#xff1a; 安装前提条件 首先&#xff0c;确保系统已安装yum-utils工具&#xff0c;这将有助于管理软件包和仓库&#x…...

基于BesselJ函数,构建AI中的卷积神经网络之新型卷积核

原创&#xff1a;daode3056(daode1212) BesselJ函数,来自微分方程&#xff1a; 它有通解有以下形式&#xff1a; 就取J0--J5的函数图像&#xff0c;如下&#xff1a; 现取J1(x),也就是红色的这支&#xff0c;作新的函数&#xff1a; 这一函数的导数与不定积分如下&#xff1a;…...

容器镜像仓库

文章目录 1、docker hub1_注册2_登录3_创建容器镜像仓库4_在本地登录Docker Hub5_上传容器镜像6_下载容器镜像 2、harbor1_获取 docker compose二进制文件2_获取harbor安装文件3_获取TLS文件4_修改配置文件5_执行预备脚本6_执行安装脚本7_验证运行情况8_访问harborUI界面9_harb…...

qtcanpool 知 08:Docking

文章目录 前言口味改造后语 前言 很久以前&#xff0c;作者用 Qt 仿照前端 UI 设计了一个 ministack&#xff08;https://gitee.com/icanpool/qtcanpool/blob/release-1.x/src/libs/qcanpool/ministack.h&#xff09; 控件&#xff0c;这个控件可以折叠。部分用户体验后&#…...

车载VR可视化解决方案

车载VR可视化解决方案是通过融合跟踪用户头部运动的特殊预测算法与惯性测量数据而开发的。该系统将大范围虚拟现实跟踪技术与IMU传感器相结合&#xff0c;为VR和AR应用打造了一套全面的运动跟踪与渲染流程&#xff0c;极大地方便了虚拟现实头显制造商定制可视化流程。 该车载VR…...

hhdb数据库介绍(10-43)

安全 密码安全管理 密码安全管理为用户提供了对计算节点数据库用户与存储节点的连接用户、备份用户的密码有效期监控提醒。到期后自动提示用户修改密码以提升系统的安全性。 数据库用户密码 &#xff08;一&#xff09;密码修改 用户可以在“安全->密码安全管理->数据…...

【优选算法 二分查找】二分查找入门详解:二分查找 & 在排序数组中查找元素的第一个和最后一个位置

二分查找 题目描述 题目解析 暴力解法 我们可以从左往右遍历一次数组&#xff0c;如果存在 target 则返回数组的下标&#xff0c;否则返回 -1&#xff1b; 时间复杂度 O(N)&#xff0c;因为没有利用数组有序的特点&#xff0c;每次比较只能舍弃一个要比较的数&…...

Python导入moviepy找不到editor 视频没有声音设置audio_codec参数

moviepy合成视频出错&#xff1a; 问题一&#xff1a;导入moviepy.editor找不到editor&#xff0c;No module named moviepy.editor问题二&#xff1a;合成的视频没有声音 问题一&#xff1a;导入moviepy.editor找不到editor&#xff0c;No module named moviepy.editor from …...

FreeSWITCH auto-rtp-bugs 研究

还在探索中... 抓一个现场的包&#xff0c; Fs 收 rtp 包正常&#xff0c;但 发 rtp 包有问题&#xff0c;比如上次 ts 是 1 万 &#xff0c;而这次是 1000&#xff0c;并且居然没有 marker。百思不得解。 vars.xml 增加一个全局变量的配置&#xff1a; <X-PRE-PROCESS …...

TypeScript 在 React 中的应用

文章目录 前言一、为什么要在 React 中使用 TypeScript&#xff1f;二、如何在React中使用 TypeScript三、高级类型结语 前言 随着前端开发的复杂度不断提升&#xff0c;开发者对于代码质量、可维护性和开发效率的要求也日益增高。TypeScript 作为一种为 JavaScript 添加静态类…...

汇编和C语言访问存储器

一、汇编语言访问存储器 1、读存储器 LDR R1, [R2] 2、写存储器 STR R1, [R2] 二、C语言访问存储器 1、读存储器 data *ADDR; 2、写存储器 *ADDR data;...

14.3、特洛伊木马分析与防护

目录 特洛伊木马概念与分类特洛伊木马运行机制特洛伊木马植入技术特洛伊木马隐藏技术特洛伊木马存活技术特洛伊木马防范技术Rootkit是什么? 特洛伊木马概念与分类 病毒不具备传播能力&#xff0c;但是蠕虫具备 特洛伊木马运行机制 木马攻击过程主要分为五个部分: ① 寻找攻…...

SpringBoot 分层解耦

从没有分层思想到传统 Web 分层&#xff0c;再到 Spring Boot 分层架构 1. 没有分层思想 在最初的项目开发中&#xff0c;很多开发者并没有明确的分层思想&#xff0c;所有逻辑都堆砌在一个类或一个方法中。这样的开发方式通常会导致以下问题&#xff1a; 代码混乱&#xff1…...

不一样的CSS(4)--icon图标系列之svg

序言 上一节内容我们讲解了如何利用css去画一个五角星&#xff0c;其中包括了使用svg的方法&#xff0c;有些小伙伴们对svg的使用不是很了解&#xff0c;那么本节内容我们主要来讲一下&#xff0c;关于svg标签的的使用。 目录 序言一、svg的介绍二、安装SVG扩展插件三、SVG基…...

Go-知识依赖管理2

Go-知识依赖管理2 1. go.sum1.1 go.sum 文件记录1.2 生成1.3 校验1.4 校验和数据库2. 模块代理2.1 GOPROXY 介绍2.2 代理协议2.2.1 获取模块列表2.2.2 获取模块元素数据2.2.3 获取 go.mod 文件2.2.4 获取代码压缩包2.2.5 获取模块的最新可用版本2.2.6 下载过程2.3 观察下载步骤…...

el-select的搜索功能

el-select的相关信息&#xff1a; 最基本信息 v-model的值为当前被选中的el-option的 value 属性值 :label是选择器可以看到的内容 过滤搜索 普通过滤搜索 <el-selectv-model"selectedCountry"placeholder"请选择国家"filterable:loading"lo…...

批量将不同的工作簿合并到同一个Excel文件

批量将不同的工作簿合并到同一个Excel文件 下面是一个示例&#xff0c;展示如何批量将不同的工作簿合并到同一个Excel文件&#xff0c;并生成模拟数据。我们将使用 Python 的 pandas 库来完成这个任务。具体步骤如下&#xff1a; 步骤 1: 安装必要的库 首先确保你已安装 pan…...

git遇见冲突怎么解决?

问&#xff1a; 回答&#xff1a;...

Spring和SpringBoot的关系和区别?

大家好&#xff0c;我是锋哥。今天分享关于【Spring和SpringBoot的关系和区别&#xff1f;】面试题。希望对大家有帮助&#xff1b; Spring和SpringBoot的关系和区别&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring和Spring Boot是两种相关但有所…...

python学习——字符串的编码和解码

在Python中&#xff0c;字符串的编码和解码是处理文本数据时非常重要的概念。以下是对字符串编码和解码的详细解释&#xff1a; 字符串编码 字符串编码是将字符串转换成字节序列的过程。Python中的字符串是Unicode编码的&#xff0c;所以在将字符串转换成字节序列时&#xff…...

Web游戏开发指南:在 Phaser.js 中读取和管理游戏手柄输入

前言 Phaser.js 是一个广受欢迎的 HTML5 游戏框架&#xff0c;为开发者提供了创建跨平台 2D 游戏的强大工具。在现代游戏开发中&#xff0c;支持游戏手柄已成为提升玩家体验的重要方面。本文将详细介绍如何在 Phaser.js 中监听和处理游戏手柄的输入&#xff0c;帮助开发者为他…...

HTML5系列(13)-- 微数据与结构化数据指南

前端技术探索系列&#xff1a;HTML5 微数据与结构化数据指南 &#x1f4ca; 致读者&#xff1a;探索数据语义化的世界 &#x1f44b; 前端开发者们&#xff0c; 今天我们将深入探讨 HTML5 微数据与结构化数据&#xff0c;学习如何让网页内容更易被搜索引擎理解和解析。 微数…...

MAA ADB问题

模拟器官方MUMU12 连接设置 | MaaAssistantArknights 参考文档&#xff0c;找谷歌platform ADB&#xff0c;放入MAA文件夹 选择谷歌ADB&#xff0c;选择MUMU12的ADB代码 MuMu 模拟器 12 127.0.0.1:16384 重新连接 ok...

基于VTX356语音识别合成芯片的智能语音交互闹钟方案

一、方案概述 本方案旨在利用VTX356语音识别合成芯片强大的语音处理能力&#xff0c;结合蓝牙功能、APP或小程序&#xff0c;打造一款功能全面且智能化程度高的闹钟产品。除了基本的时钟显示和闹钟提醒功能外&#xff0c;还拥有正计时、倒计时、日程安排、重要日提醒以及番茄钟…...

大语言模型应用开发框架LangChain

大语言模型应用开发框架LangChain 一、LangChain项目介绍1、简介2、LangChain的价值3、实战演练 二、LangChain提示词大语言模型应用1、简介1.1、提示词模板化的优点1.2、提示词模板LLM 的应用1.3、Prompt 2、应用实战2.1、PromptTemplate LLM2.2、PromptTemplate LLM Outpu…...

php7.4安装pg扩展-contos7

今天接到一个需求&#xff0c;就是需要用thinkphp6链接pg(postgresql)数据库。废话不多说&#xff0c;直接上操作步骤 一、安装依赖 yum install -y sqlite-devel libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-dev…...

【开源】A064—基于JAVA的民族婚纱预定系统的设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看项目链接获取⬇️&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600个选题ex…...

网络安全防护指南:筑牢网络安全防线(5/10)

一、网络安全的基本概念 &#xff08;一&#xff09;网络的定义 网络是指由计算机或者其他信息终端及相关设备组成的按照一定的规则和程序对信息收集、存储、传输、交换、处理的系统。在当今数字化时代&#xff0c;网络已经成为人们生活和工作中不可或缺的一部分。它连接了世…...

集合框架(2)List

Collection的子接口&#xff1a;List、Set 1、List接口 鉴于Java中数组用来存储数据的局限性&#xff0c;我们通常使用java.util.List替代数组List集合类中元素有序、且可重复&#xff0c;集合中的每个元素都有其对应的顺序索引。JDK API中List接口的实现类常用的有&#xff…...

12.5作业

1.完成指针的练习 1.已知数组a[10]和b[10]中元素的值递增有序&#xff0c;用指针实现将两个数组中的元素按递增的顺序输出。 ex: int arr[5]{1,3,5,7,9}; int arr1[5]{2,4,6,8,10}; 程序结束后输出1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&am…...

61 基于单片机的小车雷达避障及阈值可调

所有仿真详情导航&#xff1a; PROTEUS专栏说明-CSDN博客 目录 一、主要功能 二、硬件资源 三、主程序编程 四、资源下载 一、主要功能 基于51单片机&#xff0c;采用超声波传感器检测距离&#xff0c;通过LCD1602显示屏显示&#xff0c;三个按键&#xff0c;第一个按键是…...

116. UE5 GAS RPG 实现击杀掉落战利品功能

这一篇&#xff0c;我们实现敌人被击败后&#xff0c;掉落战利品的功能。首先&#xff0c;我们将创建一个新的结构体&#xff0c;用于定义掉落体的内容&#xff0c;方便我们设置掉落物。然后&#xff0c;我们实现敌人死亡时的掉落函数&#xff0c;并在蓝图里实现对应的逻辑&…...

原子类相关

原子引用 JUC 并发包提供了&#xff1a; AtomicReferenceAtomicMarkableReferenceAtomicStampedReference AtomicReference 使用举例 public interface DecimalAccount {// 获取余额BigDecimal getBalance();// 取款void withdraw(BigDecimal amount);/*** 方法内会启动 10…...

DeCoOp: Robust Prompt Tuning with Out-of-Distribution Detection

文章汇总 me&#xff1a;看得很迷糊 新型检测器 M D \mathcal M_D MD​的训练是为了对一个子基类去划分子基类中的base和new。 在获得每个子基类之后&#xff0c;为每个检测器训练子分类器 M C \mathcal M_C MC​ 在推理时&#xff0c;如果最高得分的检测器 M D i ( x ) \ma…...

Tinker热修复框架详解:Android应用补丁生成,提升应用稳定性

Tinker 是腾讯开源的Android热修复框架&#xff0c;通过动态更新和修复应用中的代码、资源和本地库文件&#xff0c;无需用户重新安装 APK&#xff0c;便可以及时修复应用中的 bug&#xff0c;优化用户体验。 下面是Tinker在Android项目中的详细用法&#xff0c;结合Kotlin 代…...

手写—— netty 实现 rabbitMq客户端

要使用 Netty 实现一个 RabbitMQ 客户端&#xff0c;你可以将 RabbitMQ 协议封装在 Netty 中&#xff0c;通过自定义编码和解码来实现与 RabbitMQ 的通信。RabbitMQ 使用 AMQP (Advanced Message Queuing Protocol) 协议&#xff0c;因此我们需要创建合适的协议封装和处理逻辑。…...

调用高德地图天气查询api

之前使用的api一直用不了&#xff0c;才发现web端类型的没有天气查询功能 web服务才有 然后在linux的环境变量中配置一下 发现linux中配的环境变量不行&#xff0c;于是给输入amap_weather给的字典明文token。 # 选用RolePlay 配置agent from modelscope_agent.agents.role_p…...