// Buffer 与字符串的转换示例
// Buffer 是 Node.js 中用于处理二进制数据的类,字符串与 Buffer 之间的转换是常见操作// 1. 从字节数组创建 Buffer 并转换为字符串
// Buffer.from(array) 接收一个字节数值数组,创建对应的 Buffer
let buf_4 = Buffer.from([105, 108, 111, 101, 121, 111, 117]);
// 解释:数组中的每个数字代表一个 ASCII 码值
// 105 -> 'i', 108->'l', 111->'o', 101->'e', 121->'y', 111->'o', 117->'u'// 将 Buffer 转换为字符串(默认使用 UTF-8 编码)
console.log(buf_4.toString()); 
// 输出结果:"iloveyou"
// 解释:Buffer 中的字节被解析为对应的字符,拼接后形成完整字符串// 2. 从字符串创建 Buffer 并修改其中的字节
// Buffer.from(string) 从字符串创建 Buffer,存储字符串的 UTF-8 编码字节
let buf = Buffer.from('hello world');
// 解释:'hello world' 每个字符在 ASCII 中占 1 字节,共 11 字节// 打印 Buffer 内容(以十六进制表示)
console.log(buf); 
// 输出结果:<Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
// 解释:每个十六进制值对应字符的 ASCII 码
// 68->'h', 65->'e', 6c->'l', 6c->'l', 6f->'o', 20->' ', 77->'w', 6f->'o', 72->'r', 6c->'l', 64->'d'// 修改 Buffer 中索引为 0 的字节值(95 对应 ASCII 中的下划线 '_')
buf[0] = 95;// 将修改后的 Buffer 转换为字符串
console.log(buf.toString()); 
// 输出结果:"_ello world"
// 解释:原字符串第一个字符 'h' 被替换为 '_',其他字符保持不变// 3. 中文字符的 Buffer 存储特性
// 从中文字符串创建 Buffer(UTF-8 编码下中文通常占 3 字节)
let bufChinese = Buffer.from('你好');// 打印中文对应的 Buffer 内容
console.log(bufChinese); 
// 输出结果:<Buffer e4 bd a0 e5 a5 bd>
// 解释:
// '你' 的 UTF-8 编码为 3 字节:e4 bd a0
// '好' 的 UTF-8 编码为 3 字节:e5 a5 bd
// 整个 Buffer 长度为 6 字节,体现了 UTF-8 编码对多字节字符的支持

核心知识点总结:

 

  1. Buffer 创建方式Buffer.from() 可接收数组、字符串等参数,创建对应的二进制缓冲区
  2. 编码特性
    • 英文字符、数字、符号通常在 UTF-8 中占 1 字节(与 ASCII 兼容)
    • 中文字符在 UTF-8 中通常占 3 字节
  3. 转换方法buf.toString() 可将 Buffer 转回字符串,默认使用 UTF-8 编码
  4. 字节操作:Buffer 可通过索引直接修改字节值,进而改变最终转换的字符串

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917668.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917668.shtml
英文地址,请注明出处:http://en.pswp.cn/news/917668.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java 基础】Java 源代码加密工具有哪些?

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区:个人社区 💞 个人主页:个人主页 🙉 专栏地址: ✅ Java 中级 🙉八股文专题:剑指大厂,手撕 J…

es的histogram直方图聚合和terms分组聚合

你提到的这两个 Elasticsearch aggs 聚合语句&#xff1a;第一种&#xff1a;histogram 直方图聚合 "aggs": {"DayDiagram": {"histogram": {"field": "${FiledName}","interval": ${TimeInterval},"extende…

基于Java的AI/机器学习库(Smile、Weka、DeepLearning4J)的实用

基于Java和AI技术处理动漫视频 以下是一些基于Java和AI技术处理动漫视频(如《亚久斗》)的实用案例和实现方法,涵盖视频分析、风格转换、角色识别等方向。每个案例均提供技术思路和关键代码片段。 视频关键帧提取 使用OpenCV提取动漫视频中的关键帧,保存为图片供后续分析…

笔记本电脑联想T14重启后无法识别外置红米屏幕

【原先是可以连接重启后不行】按照以下步骤排查和解决&#xff1a;✅ 1. 基础排查确认连接方式&#xff1a;检查是否使用 USB-C转DP/HDMI线 或 HDMI/DP直连&#xff0c;尝试更换线缆或接口&#xff08;如换另一个USB-C口或HDMI口&#xff09;。测试显示器&#xff1a;将红米显示…

vue+ts 基础面试题 (一 )

目录 1.Vue3 响应式原理 一、 响应式的基本概念 二、 核心机制&#xff1a;Proxy 和依赖追踪 三、 触发更新的过程 四、 代码示例 五、 优势总结 2.如何实现组件间通信&#xff1f; 一、父子组件通信 1. 父传子&#xff1a;Props 传递 2. 子传父&#xff1a;自定义事…

Spring AI实战:SpringBoot项目结合Spring AI开发——提示词(Prompt)技术与工程实战详解

&#x1fa81;&#x1f341; 希望本文能给您带来帮助&#xff0c;如果有任何问题&#xff0c;欢迎批评指正&#xff01;&#x1f405;&#x1f43e;&#x1f341;&#x1f425; 文章目录一、前言二、提示词前置知识2.1 提示词要素2.2 设计提示词的通用技巧2.2.1 从简单开始2.2.…

【后端】Java static 关键字详解

在 Java 中&#xff0c;static 是一个修饰符&#xff0c;用于定义与类相关&#xff08;而非对象实例相关&#xff09;的成员。以下是核心知识点和用法&#xff1a;一、四大用途静态变量&#xff08;类变量&#xff09; 作用&#xff1a;属于类&#xff0c;而非实例。所有实例共…

算法训练营DAY50 第十一章:图论part01

98. 所有可达路径 98. 所有可达路径 【题目描述】 给定一个有 n 个节点的有向无环图&#xff0c;节点编号从 1 到 n。请编写一个程序&#xff0c;找出并返回所有从节点 1 到节点 n 的路径。每条路径应以节点编号的列表形式表示。 【输入描述】 第一行包含两个整数 N&#…

OpenCV:从入门到实战的全方位指南

目录 一、OpenCV 简介 &#xff08;一&#xff09;特点 &#xff08;二&#xff09;应用场景 二、OpenCV 的核心模块 &#xff08;一&#xff09;core 模块 &#xff08;二&#xff09;imgproc 模块 &#xff08;三&#xff09;video 模块 &#xff08;四&#xff09;f…

如何在 Ubuntu 24.04 上安装和配置 TFTP 服务器

了解如何在 Ubuntu 24.04 Linux 上安装 TFTP 以执行基本的文件传输。 简单文件传输协议(TFTP)是标准 FTP 的轻量级替代方案,用于在联网设备之间传输文件。与 FTP 和 HTTP 相比,TFTP 更简单,无需复杂的客户端-服务器模型即可操作。这就是为什么该协议用于执行基本文件传输…

基于 AXI-Lite 实现可扩展的硬件函数 RPC 框架(附完整源码)

AXI-Lite 实现RPC调用硬件函数服务 &#x1f44b; 本文介绍如何基于 AXI-Lite 总线设计一个通用的“硬件函数调用框架”。主机端&#xff08;PS&#xff09;只需通过寄存器写入参数与启动标志&#xff0c;即可触发 PL 模块执行指定算法逻辑&#xff0c;并将结果返回。 该机制本…

[spring-cloud: NamedContextFactory ClientFactoryObjectProvider]-源码阅读

依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-commons</artifactId><version>4.3.0</version> </dependency>源码 NamedContextFactory NamedContextFactory 类通过创建多个子…

HBase MOB技术特点及使用场景介绍

在 HBase 2.0 版本之前,虽然 HBase 能够存储从 1 字节到 10MB 大小的二进制对象 ,但其读写路径主要针对小于 100KB 的值进行了优化。当面对大量大小在 100KB - 10MB 之间的数据时,传统的存储方式就会暴露出问题。例如,当存储大量的图片、文档或短视频等中等大小对象时,由于…

Ubuntu 配置密钥+密码登录

目录 1、密钥生成 2、发送公钥至 需要连接的服务器 3、选用私钥登录 1、密钥生成 ssh-keygen -t rsa -b 4096 -C "angindem"2、发送公钥至 需要连接的服务器 将.ssh中的id_rsa.pub 的密钥&#xff0c;放在authorized_keys中 注意&#xff1a;.ssh 文件夹一定赋予…

谷歌浏览器Chrome 缓存迁移

步骤 1&#xff1a;准备数据迁移1. 关闭 Chrome 及所有后台进程在任务管理器&#xff08;CtrlShiftEsc&#xff09;中结束所有 chrome.exe 进程。 2. 备份并移动原数据- 将 C:\Users\xxx\AppData\Local\Google\Chrome\User Data **整个文件夹**复制到新位置&#xff08;如 G:\…

Java中的RabbitMQ完全指南

Java中的RabbitMQ完全指南 1. 引言 什么是RabbitMQ RabbitMQ是一个开源的消息代理和队列服务器&#xff0c;实现了高级消息队列协议&#xff08;AMQP&#xff09;。它充当应用程序之间的消息中间件&#xff0c;允许分布式系统中的不同组件进行异步通信。RabbitMQ使用Erlang语言…

【MCAL】AUTOSAR架构下SPI数据异步DMA收发具体实现

目录 前言 正文 1.依赖的硬件特性 1.1.SPI硬件特性 1.1.1. TXFIFO Single Move Mode 1.1.2. RXFIFO Single Move Mode 1.1.3. Move Counter模式 1.1.4. PT中断 1.2.IR硬件特性 1.3.DMA硬件特性 1.3.1. DMA通道硬件请求 1.3.2. DMA循环Buffer 1.3.3. DMA Link List …

【Unity】协程 Async

协程 协程是 Unity 内置的异步机制&#xff0c;通过 yield 暂停执行&#xff0c;实现任务在多帧中分段执行。与普通函数不同&#xff0c;协程可在执行过程中挂起和恢复&#xff0c;呈现"并发"效果&#xff0c;但本质上仍运行于主线程。若在协程中进行耗时操作&#…

《揭秘!10 分钟洞悉 Prompt、Function Calling、MCP 与 AI agent 奥秘》

Prompt、Function Calling、MCP、AI agent这些术语频繁闯入我们的视野&#xff0c;它们到底都是什么、有啥关系。只需十分钟&#xff0c;咱们抽丝剥茧&#xff0c;揭开它们的神秘面纱&#xff0c;轻松掌握这些关键概念 并了解AI agent 完整执行流程。 一、提示词&#xff08;P…

决策树(回归树)全解析:原理、实践与应用

文章目录一、概述1.1 介绍1.2 回归树和分类树区别二、重要参数、属性及接口2.1 criterion&#xff08;不纯度衡量指标&#xff09;2.2 回归树如何工作&#xff08;核心流程拆解&#xff09;三、用回归树拟合正弦曲线&#xff08;实战案例&#xff09;3.1 绘制正弦曲线3.2 为正弦…