Node.js中Buffer的用法

// 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 為正弦…