首页/数据/SQL 速查/CONVERT USING 与 convert_from 字符集转换
函数速查60 条

CONVERT USING 与 convert_from 字符集转换

字符集转换与检测:MySQL 有 CONVERT(expr USING cs) 与 CHARSET()/COLLATION();PostgreSQL 用 convert_to/convert_from 处理字节与文本互转。

SQL 速查数据更新于 2026-10-12

MySQL

MySQL
SELECT CONVERT('中文' USING utf8mb4);
SELECT CHARSET(name), COLLATION(name) FROM users LIMIT 1;
-- 建库建表统一 utf8mb4(utf8 是 utf8mb3 的历史别名,只支持 3 字节编码)

PostgreSQL

PostgreSQL
SELECT convert_to('中文', 'UTF8');       -- bytea
SELECT convert_from('\xe4\xb8\xad'::bytea, 'UTF8');  -- '中'
SHOW server_encoding;
MySQL连接/库/表/列四级字符集;utf8mb4 支持 4 字节字符(emoji)
PostgreSQL数据库级 server_encoding 建库时固定;convert_to/convert_from 做编解码
排障乱码先确认链路上每段的编码声明是否一致

易错点

  • MySQL 先用 utf8 建库、后改 utf8mb4 会留下“半迁移”状态:旧列无法存 emoji,需要逐列 ALTER 并检查索引长度
  • 乱码多数不是数据坏了而是展示/连接字符集不一致,先比对 SHOW VARIABLES 的 character_set_* 再改数据

数据来源与参考

  • MySQL 8.0 Reference Manual · Charset Functions
  • PostgreSQL Documentation · String Functions and Operators
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌