铅笔

在你的害怕中坚持的越多,你就会越自信
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C++读取MYSQL数据库中文乱码问题

Posted on 2020-11-23 22:17  黑色の铅笔  阅读(1035)  评论(0编辑  收藏  举报

系统:Ubuntu16.04

MYSQL:MYSQL5.6

建库表使用的是编码格式为:UTF-8

 

 

现象:

使用C++的MYSQL数据库接口,读取数据库中的中文字符出现乱码,具体表现为中文字符在终端显示为 “?” ,英文均显示为正常,无乱码

解决:调用MYSQL数据库接口之前(连接上数据库成功之后),执行

mysql_query(xxx,'SET NAMES UTF8');

其中xxx表示mysql*类型

SET NAMES显示客户端发送的SQL语句中使用什么字符集

"SET NAMES UTF8"语句包括两层含义:

1.告诉服务器,发送到此客户端的数据采用UTF-8字符编码格式(例如,如果你使用一个SELECT语句,它表示列值使用了什么字符集)

2.同时告诉服务器将从该客户端传来的信息采用UTF-8字符编码格式