点开工具、字典、anything


字符集

<p><br></p> <h4>utf8mb4 和 utf8 和 utf-8 和有什么区别</h4> <p>utf-8是变长的, 理论上是可以到 6 个字节的,但现在世界上所有字符用 4 个字节就已经能表示了</p> <p>占 1 个字节: 数字占1个字节 英文字母占1个字节</p> <p>占2个字节的: 带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要二个字节编码</p> <p>占3个字节的: 基本等同于GBK,含21000多个汉字</p> <p>占4个字节的: 中日韩超大字符集里面的汉字,有5万多个</p> <p>mysql 的 utf8 是一个 bug, 只支持了到 3 字节,所以不支持 emoji, 真正的 utf-8 叫 utf8mb4</p> <ul> <li>u4e00-u9fa5 (中文) </li> <li>x3130-x318F (韩文) </li> <li>xAC00-xD7A3 (韩文) </li> <li>u0800-u4e00 (日文)</li> </ul> <p><br></p> <h4>字节</h4> <p>\xFF<br /> \x 是十六进制标示</p> <p>\015;<br /> \0 是八进制标示</p> <p>\uFF00<br /> \u是unicode标识 </p> <p>下面是对 \uFF00 的解释:</p> <pre><code>1 字节是8位, 能标识 2 的 8 次方 (0 - 255) FF = 255 1111 1111 00 = 0 0000 0000 所以 \uFF00 其实是 1111 1111 0000 0000 上面代表两字节</code></pre> <p><br></p> <h4>字符</h4> <p>一个字符 由一个 或 多个字节组成</p> <p><br></p> <h4>utf-8 和 unicode 的关系</h4> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/c9e929b5afb942cb2dc6353794120f9a?showdoc=.jpg" alt="" /></p> <p>实际存储占更多位数 =》 为了识别存多少位</p> <p>解密出来的 unicode 占比较少的位,然后去映射表查中文信息</p> <p><br></p> <h4>转义</h4> <pre><code>遇到 \u 就转 遇到 \\u当成普通字符串 </code></pre> <p>理解下面即可</p> <pre><code> fmt.Println("\u4e2d\u6587") // 输出转义结果 fmt.Println(`\u4e2d\u6587`) // 原样输出 fmt.Println("\\u4e2d\\u6587") // 原样输出 go 语言会直接输出转义后的中文,除非你指定为 `` 或者加上斜杆 \ </code></pre> <p><br></p> <h4>后端语言转不了js emoji 的原因</h4> <p><a href="https://www.cnblogs.com/mingao/p/5000114.html">https://www.cnblogs.com/mingao/p/5000114.html</a></p> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/d31fad88ed08feb31a7219542a507a81?showdoc=.jpg" alt="" /></p> <p><br></p> <h4>emoji 查询</h4> <p><a href="https://dict.emojiall.com/zh-hans/emoji/%F0%9F%98%80">https://dict.emojiall.com/zh-hans/emoji/%F0%9F%98%80</a></p>

页面列表

ITEM_HTML