<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 字節 * 計算機內部,所有信息最終都是一個二進制值 * 每一個二進制位(bit)有0和1兩種狀態,因此八個二進制位就可以組合出256種狀態,這被稱為一個字節(byte) ![](https://box.kancloud.cn/8858629d380359ef78bc6c9d86bc70c1_500x250.png) <br> <br> ## 單位 * 8位 = 1字節 * 1024字節 = 1K * 1024K = 1M * 1024M = 1G * 1024G = 1T <br> <br> ## JavaScript中的進制 #### 進制表示 ``` let a = 0b10100;//二進制 let b = 0o24;//八進制 let c = 20;//十進制 let d = 0x14;//十六進制 console.log(a == b); console.log(b == c); console.log(c == d); ``` #### 進制轉換 ``` // 10進制轉任意進制 10進制數.toString(目標進制) console.log(c.toString(2)); // 任意進制轉十進制 parseInt('任意進制字符串', 原始進制); console.log(parseInt('10100', 2)); ``` <br> #### ASCII 最開始計算機只在美國用,八位的字節可以組合出256種不同狀態,一直編到了第 127 號,這樣計算機就可以用不同字節來存儲英語的文字了 ![](https://box.kancloud.cn/f48ea68ce02b77091442236eb0c92601_700x494.png) 這個方案叫做 ASCII 編碼 > American Standard Code for Information Interchange:美國信息互換標準代碼 <br> #### GB2312 其他非英語國家,比如中文博大精深的中國,8位不夠用,所以增加到16位,漢字方案叫GB2312。GB2312 是對 ASCII 的中文擴展 <br> #### GBK 后來還是不夠用,于是又擴充了,增加了近 20000 個新的漢字(包括繁體字)和符號。 <br> #### GB18030 / DBCS 又加了幾千個新的少數民族的字,GBK擴成了GB18030 通稱他們叫做 DBCS <br> #### Unicode 各個國家都像中國這樣搞出一套自己的編碼標準,結果互相之間誰也不懂誰的編碼,誰也不支持別人的編碼 ,Unicode 一統江湖,現在的規模可以容納100多萬個符號。 <br> #### UTF-8 Unicode 在很長一段時間內無法推廣,直到互聯網的出現,為解決 Unicode 如何在網絡上傳輸的問題,于是面向傳輸的UTF-8 出現了, <br> #### base64 小的圖片會轉base64,減少http請求 base64比原圖片大,所以大圖片不用base64 fileReader(H5)讀取文件拿到的就是base64編碼的圖片 <br> ## 文本編碼 #### BOM的移除 ``` // y.txt是ANSI的,就是GBK,另存為z.txt(utf8),gbk另存utf8或者合并文件的時候會出現BOM頭 fs.readFile('./z.txt', function (err, data) { console.log(stripBOM(data)); }); fs.readFile('./z.txt', 'utf-8', function (err, data) { console.log(stripBOM(data)); }); // 丟棄BOM頭 function stripBOM(bin) { // console.log(typeof bin); if (typeof bin === 'string') { if(bin.charCodeAt(0) === 0xFEFF){ return bin.slice(1); } }else{ if (bin[0] === 0xEF && bin[1] === 0xBB && bin[2] === 0xBF) { return bin.slice(3).toString('utf-8'); } return bin; } } ``` <br> #### GBK轉UTF8 ``` var iconv = require('iconv-lite'); function readGBKText(pathname) { var bin = fs.readFileSync(pathname); return iconv.decode(bin, 'gbk'); } ``` ## Buffer亂碼 ``` const fs = require('fs'); const {StringDecoder} = require('string_decoder'); let b = Buffer.from('中國'); let sd = new StringDecoder(); // console.log(b.slice(0, 4).toString()); // 通過sd寫二進制不會導致一組編碼斷開而亂碼,會識別多出來的編碼并緩存 console.log(sd.write(b.slice(0, 4))); console.log(sd.write(b.slice(4))); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看