温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

结果集编码如何转换

发布时间:2026-10-01 02:09:51 来源:亿速云 阅读:91 作者:小樊 栏目:数据库

“结果集编码如何转换”这个问题通常出现在 数据库查询结果(ResultSet)出现乱码,或者你需要把结果集里的数据从一种字符编码转成另一种编码的场景。

下面按常见场景给你说明:


一、数据库查询结果是乱码(最常见)

1. 确认数据库、连接、程序三处编码一致

以 MySQL 为例,推荐统一为 UTF-8:

数据库

SHOW VARIABLES LIKE 'character_set%';

确保:

  • character_set_database = utf8
  • character_set_server = utf8

连接 URL(Java 示例)

jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8

程序读取

ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
    String name = rs.getString("name"); // 正常应为 UTF-8
}

二、结果集本身是字节,需要手动转编码

Java 示例(ISO-8859-1 → UTF-8)

String iso = rs.getString("col");
String utf8 = new String(iso.getBytes("ISO-8859-1"), "UTF-8");

Python 示例

data = result_set[0]
utf8_data = data.encode('latin1').decode('utf-8')

三、把整个 ResultSet 转换成指定编码的输出(如 JSON)

Java → JSON(UTF-8)

response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
out.write(jsonString);

Python(Flask)

return jsonify(data), 200
# 默认就是 UTF-8

四、导出文件时指定编码

例如导出 CSV:

BufferedWriter writer =
    new BufferedWriter(new OutputStreamWriter(
        new FileOutputStream("out.csv"), "UTF-8"));

五、快速排查顺序(建议)

  1. 数据库字段编码
  2. 数据库连接编码
  3. 程序读取编码
  4. 输出/页面编码

如果你能告诉我:

  • 使用什么语言(Java / Python / C# 等)
  • 什么数据库(MySQL / Oracle / PostgreSQL)
  • 乱码还是主动转换编码

我可以给你更精确的代码示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手