UTF-8在 Go 中的写法:标准库用法与示例

71 0

UTF-8 是 Unicode 最常用的存储编码,用 1–4 个字节表示一个字符:ASCII 字符 1 字节,拉丁字母扩展 2 字节,常用汉字 3 字节,emoji 等 4 字节。下面重点说明标准库用法与示例。

UTF-8在 Go 中的写法

下面是 Go 中处理UTF-8的常用写法:

s := "123问"
len(s)                     // 6,Go 字符串就是 UTF-8 字节
utf8.RuneCountInString(s)  // 4
utf8.ValidString(s)        // true

运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。

示例

输入:abc

编码结果:61 62 63

说明:按 UTF-8 共 3 字节。

特殊字符

特殊字符的字节:不换行空格 U+00A0 是 C2 A0(2 字节),全角空格 U+3000 是 E3 80 80,零宽空格 U+200B 是 E2 80 8B,BOM 是 EF BB BF,emoji 😀 是 F0 9F 98 80。

常见报错

  • UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6:文件实际是 GBK
  • Incorrect string value: '\xF0\x9F\x98\x80'(MySQL):字段是 utf8,改为 utf8mb4
  • 页面显示“锟斤拷”:GBK 与 UTF-8 来回错误转换,替换字符 EF BF BD 被按 GBK 显示
  • PHP 输出前多了空白:文件带 BOM

本站的字符编码检测工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。

常见问题

【一个汉字在 UTF-8 中占几个字节?】常用汉字 3 个字节;扩展 B 区及以后的生僻字 4 个字节。

【UTF-8 和 utf8mb4 有什么区别?】utf8mb4 是 MySQL 中真正完整的 UTF-8;MySQL 的 utf8 最多 3 字节,不能存 emoji。

【什么是 BOM?】文件开头的 EF BB BF 三个字节,用来标记 UTF-8。网页和脚本文件建议不加。

文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。

署名:123问编辑部 · 最近修订:2026-11-11 · 已按编辑与审核说明检查;内容仅供参考,不构成医疗、法律或投资建议。发现错误可查看纠错方式。

标签: 文本处理

抱歉,评论功能暂时关闭!