<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 一些重要的字符集 * `ASCII`字符集 共收錄128個字符,包括空格、標點符號、數字、大小寫字母和一些不可見字符。由于總共才128個字符,所以可以使用1個字節來進行編碼,我們看一些字符的編碼方式: ``` 'L' -> 01001100(十六進制:0x4C,十進制:76) 'M' -> 01001101(十六進制:0x4D,十進制:77) ``` * `ISO 8859-1`字符集 共收錄256個字符,是在ASCII字符集的基礎上又擴充了128個西歐常用字符(包括德法兩國的字母),也可以使用1個字節來進行編碼。這個字符集也有一個別名latin1。 * `GB2312`字符集 收錄了漢字以及拉丁字母、希臘字母、日文平假名及片假名字母、俄語西里爾字母。其中收錄漢字6763個,其他文字符號682個。同時這種字符集又兼容ASCII字符集,所以在編碼方式上顯得有些奇怪: * 如果該字符在`ASCII`字符集中,則采用1字節編碼。 * 否則采用2字節編碼 這種表示一個字符需要的字節數可能不同的編碼方式稱為變長編碼方式。比方說字符串'愛u',其中'愛'需要用2個字節進行編碼,編碼后的十六進制表示為0xB0AE,'u'需要用1個字節進行編碼,編碼后的十六進制表示為0x75,所以拼合起來就是0xB0AE75。 ASCII 只有128個字符, 使用 0 - 127 就可以表示全部字符,所以如果字符在0 -127 則一個字節表示, 否則倆字節表示。 * `GBK`字符集 `GBK`字符集只是在收錄字符范圍上對`GB2312`字符集作了擴充,編碼方式上兼容`GB2312`。 * `utf8`字符集 收錄地球上能想到的所有字符,而且還在不斷擴充。這種字符集兼容`ASCII`字符集,采用變長編碼方式,編碼一個字符需要使用1~4個字節,比方說這樣: ``` 'L' -> 01001100(十六進制:0x4C) '啊' -> 111001011001010110001010(十六進制:0xE5958A) ``` ``` 其實準確的說,utf8只是Unicode字符集的一種編碼方案,Unicode字符集可以采用utf8、utf16、utf32這幾種編碼方案,utf8使用1~4個字節編碼一個字符,utf16使用2個或4個字節編碼一個字符,utf32使用4個字節編碼一個字符。更詳細的Unicode和其編碼方案的知識不是本書的重點,大家上網查查哈~ MySQL中并不區分字符集和編碼方案的概念,所以后邊嘮叨的時候把utf8、utf16、utf32都當作一種字符集對待。 ``` 對于同一個字符,不同字符集也可能有不同的編碼方式。比如對于漢字'我'來說,ASCII字符集中根本沒有收錄這個字符,utf8和gb2312字符集對漢字我的編碼方式如下: ``` utf8編碼:111001101000100010010001 (3個字節,十六進制表示是:0xE68891) gb2312編碼:1100111011010010 (2個字節,十六進制表示是:0xCED2) ``` ### MySQL中的utf8和utf8mb4 `utf8`字符集表示一個字符需要使用1~4個字節,但是我們常用的一些字符使用1~3個字節就可以表示了。而在`MySQL`中字符集表示一個字符所用最大字節長度在某些方面會影響系統的存儲和性能 * `utf8mb3`:閹割過的`utf8`字符集,只使用1~3個字節表示字符。 * `utf8mb4`:正宗的`utf8`字符集,使用1~4個字節表示字符。 有一點需要大家十分的注意,在`MySQL`中`utf8`是`utf8mb3`的別名,所以之后在`MySQL`中提到`utf8`就意味著使用1~3個字節來表示一個字符,如果大家有使用4字節編碼一個字符的情況,比如存儲一些emoji表情啥的,那請使用`utf8mb4`。 ### 字符集的查看 `MySQL`支持好多好多種字符集,查看當前`MySQL`中支持的字符集可以用下邊這個語句: `SHOW (CHARACTER SET|CHARSET) [LIKE 匹配的模式];` 其中`CHARACTER SET`和`CHARSET`是同義詞,用任意一個都可以。我們查詢一下(支持的字符集太多了,我們省略了一些): ![](https://img.kancloud.cn/90/ed/90ed4761ef0a597b45ba159ae5e21ec2_658x836.png) ``` mysql> SHOW CHARSET; ``` ### 比較規則的查看 SHOW COLLATION [LIKE 匹配的模式]; ``` mysql> SHOW COLLATION LIKE 'utf8\_%'; ``` 這些比較規則的命名還挺有規律的,具體規律如下: * 比較規則名稱以與其關聯的字符集的名稱開頭。如上圖的查詢結果的比較規則名稱都是以`utf8`開頭的。 * 后邊緊跟著該比較規則主要作用于哪種語言,比如`utf8_polish_ci`表示以波蘭語的規則比較,`utf8_spanish_ci`是以西班牙語的規則比較,`utf8_general_ci`是一種通用的比較規則。 * 名稱后綴意味著該比較規則是否區分語言中的重音、大小寫啥的 _ai accent insensitive 不區分重音 _as accent sensitive 區分重音 _ci case insensitive 不區分大小寫 _cs case sensitive 區分大小寫 _bin binary 以二進制方式比較 比如`utf8_general_ci`這個比較規則是以`ci`結尾的,說明不區分大小寫。
                  <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>

                              哎呀哎呀视频在线观看