js字符串序列化為二進制數據

在JavaScript中,可以通過不同的方式將字符串序列化為二進制數據。以下是幾種常見的方法:

  1. TextEncoder 和 TextDecoder
    JavaScript 提供了 TextEncoderTextDecoder 對象,可以用來處理字符串和二進制數據之間的轉換。

    // 將字符串轉換為二進制數據
    const encoder = new TextEncoder();
    const text = 'Hello, 你好!';
    const encoded = encoder.encode(text);// 將二進制數據解碼為字符串
    const decoder = new TextDecoder();
    const decoded = decoder.decode(encoded);console.log(encoded); // Uint8Array(15) [72, 101, 108, 108, 111, 44, 32, 228, 189, 160, 229, 165, 189, 33]
    console.log(decoded); // Hello, 你好!
    

    這種方法可以處理 UTF-8 編碼的字符串。

  2. TypedArray
    可以使用 TypedArray 來處理二進制數據,例如 Uint8Array

    // 將字符串轉換為 Uint8Array
    const text = 'Hello, 你好!';
    const bytes = new Uint8Array(text.length);
    for (let i = 0; i < text.length; i++) {bytes[i] = text.charCodeAt(i);
    }console.log(bytes); // Uint8Array(15) [72, 101, 108, 108, 111, 44, 32, 203, 156, 229, 165, 189, 33]
    

    這種方法需要注意字符編碼的處理,特別是非 ASCII 字符。

  3. 直接操作字符串的 UTF-16 編碼
    JavaScript 中的字符串使用 UTF-16 編碼,可以直接操作其編碼單元(16 位)。

    // 將字符串轉換為 UTF-16 編碼
    const text = 'Hello, 你好!';
    const bytes = new Uint16Array(text.length);
    for (let i = 0; i < text.length; i++) {bytes[i] = text.charCodeAt(i);
    }console.log(bytes); // Uint16Array(8) [72, 101, 108, 108, 111, 44, 20320, 22909]
    

    這種方法比較底層,需要理解字符串的 UTF-16 編碼方式。

根據具體的需求和場景,可以選擇適合的方法將字符串序列化為二進制數據。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/39591.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39591.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39591.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL Server時區支持

本文介紹MySQL維護的時區設置——如何加載命名時間支持所需的系統表&#xff0c;如何及時了解時區變化&#xff0c;以及如何啟用閏秒支持。 從MySQL 8.0.19開始&#xff0c;插入的日期時間值也支持時區偏移。 1 時區變量 MySQL Server維護了幾個時區設置&#xff1a; 服務器…

爬蟲筆記20——票星球搶票腳本的實現

以下內容僅供交流學習使用&#xff01;&#xff01;&#xff01; 思路分析 前面的爬蟲筆記一步一步走過來我們的技術水平也有了較大的提升了&#xff0c;現在我們來進行一下票星球搶票實戰項目&#xff0c;實現票星球的自動搶票。 我們打開票星球的移動端頁面&#xff0c;分…

視頻字幕提取在線工具有哪些?總結5個字幕提取工具

平時在沉浸式追劇的時候&#xff0c;我們常常都會被影視劇中的各種金句爆梗而逗得開懷大笑~而真正要用到時候卻總是一片頭腦空白。其實要記住它們最好的辦法便是將其提取留檔下來&#xff0c;每次有需要的時候打開就能一下子回顧到~ 今天就來帶大家盤一盤視頻字幕提取的軟件好…

高考假期預習指南

人不走空 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌賦&#xff1a;斯是陋室&#xff0c;惟吾德馨 目錄 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌…

目標檢測YOLO實戰應用案例100講-基于深度學習的無人機影像小目標識別

目錄 前言 研究現狀 深度學習研究現狀 目標檢測研究現狀 目標檢測存在的問題 2 基于深度學習的目標檢測算法理論基礎 2.1 卷積神經網絡 2.1.1 卷積層 2.1.2 池化層 2.1.3 激活函數 2.1.4 全連接層 2.2 優化器 2.3 基于深度學習的目標檢測算法 2.3.1 …

樹上差分的公式推導

今天寫了一道題目&#xff0c;需要采用線段樹合并樹上差分來解決 題目鏈接&#xff1a;P1600 [NOIP2016 提高組] 天天愛跑步 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 其實當時已經想到要用這兩種方法&#xff0c;但苦于一直找不到轉移方程&#xff0c;最后看了答案才領…

java中可變參數

在Java中&#xff0c;... 是可變參數&#xff08;varargs&#xff09;的語法&#xff0c;用于允許一個方法接受可變數量的參數。可變參數的引入使得方法調用更加靈活和簡潔。以下是對可變參數的詳細解釋和使用示例。 可變參數的定義和使用 定義&#xff1a; 在方法參數列表中…

22-Pandas日期時間格式化

Pandas日期時間格式化 當進行數據分析時&#xff0c;我們會遇到很多帶有日期、時間格式的數據集&#xff0c;在處理這些數據集時&#xff0c;可能會遇到日期格式不統一的問題&#xff0c;此時就需要對日期時間做統一的格式化處理。比如“Wednesday, June 6, 2020”可以寫成“6…

Rust: polars行遍歷,從dataframe到struct及Bar設計比較

pandas提供了iterrows()、itertuples()、apply等行遍歷的方式&#xff0c;還是比較方便的。 polars的列操作功能非常強大&#xff0c;這個在其官網上有詳細的介紹。由于polars底層的arrow是列存儲模式&#xff0c;行操作效率低下&#xff0c;官方也不推薦以行方式進行數據操作。…

react_后臺管理_項目

目錄 1.運行項目 2. 項目結構 ①項目頂部導航欄 ②項目左側導航欄 ③主頁面-路由切換區 本項目使用的是 reacttsscss 技術棧。 1.運行項目 在當前頁面頂部下載本項目&#xff0c;解壓后使用編輯器打開&#xff0c;然后再終端輸入命令&#xff1a; npm i 下載依賴后&am…

【應急響應】Windows應急響應 - 基礎命令篇

前言 在如今的數字化時代&#xff0c;Windows系統面對著越來越復雜的網絡威脅和安全挑戰。本文將深入探討在Windows環境下的實戰應急響應策略。我們將重點關注實際應急響應流程、關鍵工具的應用&#xff0c;以及如何快速準確地識別和應對安全事件。通過分享實際案例分析&#…

FIO壓測磁盤性能以及需要注意的問題

一、壓測類型 1、順序讀&#xff08;IO&#xff09;&#xff1a;read&#xff0c;bs1M&#xff0c;job數從1開始往上加&#xff1a;2、3、4... 2、順序寫&#xff08;IO&#xff09;&#xff1a;write&#xff0c;bs1M&#xff0c;job數從1開始往上加&#xff1a;2、3、4... …

如何通過 1688 商品詳情的 API 接口獲取商品的詳細信息

在當今數字化商業的大背景下&#xff0c;能夠從 1688 這樣規模龐大且商品種類豐富的電商平臺中準確、高效地獲取商品的詳細信息&#xff0c;對于眾多企業和開發者而言&#xff0c;具有舉足輕重的意義。而通過 1688 商品詳情的 API 接口來實現這一目標&#xff0c;無疑是一種強大…

【ACM出版,馬來西亞-吉隆坡舉行】第四屆互聯網技術與教育信息化國際會議 (ITEI 2024)

作為全球科技創新大趨勢的引領者&#xff0c;中國不斷營造更加開放的科技創新環境&#xff0c;不斷提升學術合作的深度和廣度&#xff0c;構建惠及各方的創新共同體。這是對全球化的新貢獻&#xff0c;是構建人類命運共同體的新貢獻。 第四屆互聯網技術與教育信息化國際學術會議…

【 木蘭寬松許可證】

木蘭寬松許可證&#xff0c; 第1版 2019年8月 http://license.coscl.org.cn/MulanPSL 您對“軟件”的復制、使用、修改及分發受木蘭寬松許可證&#xff0c;第1版&#xff08;“本許可證”&#xff09;的如下條款的約束&#xff1a; 定義 “軟件”是指由“貢獻”構成的許可在“本…

【C++知識點總結全系列 (07)】:模板與泛型編程詳細總結與分析

模板與泛型編程 1、概述(1)What&#xff08;什么是模板、泛型編程&#xff09;(2)Why(3)Which(4)模板參數A.WhatB.HowC.模板參數的類型成員D.默認模板參數 2、模板函數3、模板類(1)How&#xff08;如何定義和使用模板類&#xff09;(2)成員模板 4、模板實參推斷(1)What&#xf…

入侵檢測模型

入侵檢測模型&#xff08;Intrusion Detection Model&#xff09;在網絡安全中起著至關重要的作用。它們用于識別和響應未經授權的訪問和攻擊行為。以下是常見的入侵檢測模型的詳細介紹&#xff1a; 一、入侵檢測模型分類 基于簽名的入侵檢測模型&#xff08;Signature-Based …

昇思25天學習打卡營第7天|Pix2Pix實現圖像轉換

文章目錄 昇思MindSpore應用實踐基于MindSpore的Pix2Pix圖像轉換1、Pix2Pix 概述2、U-Net架構定義UNet Skip Connection Block 2、生成器部分3、基于PatchGAN的判別器4、Pix2Pix的生成器和判別器初始化5、模型訓練6、模型推理 Reference 昇思MindSpore應用實踐 本系列文章主要…

大數據面試題之Flink(3)

如何確定Flink任務的合理并行度? Flink任務如何實現端到端一致? Flink如何處理背(反)壓? Flink解決數據延遲的問題 Flink消費kafka分區的數據時flink件務并行度之間的關系 使用flink-client消費kafka數據還是使用flink-connector消費 如何動態修改Flink的配置&a…

實戰:基于Java的大數據處理與分析平臺

實戰&#xff1a;基于Java的大數據處理與分析平臺 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將探討如何利用Java構建高效的大數據處理與分析平臺。…