亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將字符串轉換為真正的二進制表示形式(UTF-8或當前使用的任何形式)?

如何將字符串轉換為真正的二進制表示形式(UTF-8或當前使用的任何形式)?

江戶川亂折騰 2021-05-06 14:16:27
我想嘗試使用UTF-8和Unicode,為此,我想建立一個小型網站,以幫助我更好地理解編碼。首先,我希望能夠輸入一些文本,然后獲得字符串的實際二進制編碼。為此,我正在尋找與C?;騄ava中的“ .GetBytes”等效的內容。我不想要解析的CharCodes!這里是我想在JavaScript中重現的C#函數string ToBinary(string input){    //this is the part I am looking for in JavaScript    var utf8Bytes = Encoding.UTF8.GetBytes(input);    var bytesFormatedToBin = utf8Bytes.Select(b => Convert.ToString(b, 2).PadLeft(8, '0'));    return string.Join(' ', bytesFormatedToBin);}以下是一些示例結果:“ abc” =>“ 01100001 01100010 01100011”“ @??” =>“ 01000000 11000010 10101001 11000010 10101110”“??” =>“ 11110000 10011111 10011000 10000000 11110000 10011111 10011000 10000100”有沒有辦法在JavaScript中實現這一目標?
查看完整描述

1 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

String.prototype.charCodeAt(...)僅當字符串僅包含ASCII字符時才能正常工作。TextEncoder如果要處理其他字符,則必須使用標準:


const te = new TextEncoder('utf-8')

function toBinaryRepr(str) {

    return Array.from(te.encode(str))

        .map(i => i

            .toString(2)

            .padStart(8, '0'))

        .join(' ')

}

// '01100001 01100010 01100011'

toBinaryRepr('abc')

// '01000000 11000010 10101001 11000010 10101110'

toBinaryRepr('@??')

// '11110000 10011111 10011000 10000000 11110000 10011111 10011000 10000100'

toBinaryRepr('??')

警告:TextEncoder在較舊的Node.js版本中不是全局構造函數-如果出現TextEncoder未定義的錯誤提示,請嘗試通過以下方式將其導入:


const { TextEncoder } = require('util')


查看完整回答
反對 回復 2021-05-20
  • 1 回答
  • 0 關注
  • 278 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號