字符串编码转换是编程中常见的操作,不同编程语言/场景下方法不同。下面按常见语言和常见场景给你总结,从基础概念到实战示例。
编码(encode):
字符串 → 字节
解码(decode):
字节 → 字符串
UTF-8(最常用,推荐)GBK / GB2312(中文 Windows 常见)ASCIIISO-8859-1s = "你好"
b = s.encode("utf-8")
print(b)
b = b'\xe4\xbd\xa0\xe5\xa5\xbd'
s = b.decode("utf-8")
print(s)
s = "中文"
# GBK 编码
gbk_bytes = s.encode("gbk")
# GBK 解码为字符串
s2 = gbk_bytes.decode("gbk")
# 转 UTF-8
utf8_bytes = gbk_bytes.decode("gbk").encode("utf-8")
✅ 推荐做法:
程序内部统一使用 UTF-8,只在输入输出时转换编码
String s = "你好";
// 字符串 → 字节
byte[] bytes = s.getBytes("UTF-8");
// 字节 → 字符串
String s2 = new String(bytes, "UTF-8");
⚠️ Java 中 String 本身不保存编码,编码只出现在 byte[] 转换时。
// string → buffer
const buf = Buffer.from("你好", "utf8");
// buffer → string
const s = buf.toString("utf8");
⚠️ JS 的字符串是 UTF-16,一般不直接处理 GBK。
UTF-8 编码 → GBK 解码 ❌
✅ 不能 100% 准确判断编码
只能“猜测”:
import chardet
raw = b'\xc4\xe3\xba\xc3'
result = chardet.detect(raw)
print(result)
如果你愿意,我可以更精确帮你:
我可以直接给你可运行的代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。