c++ 插入mysql数据库中文字符串的时候,数据库中显示乱码

解决办法:

1。linux系统下在插入数据库的时候,先执行以下语句。

     mysql_query(&m_SQLInst, "SET NAMES UTF8");

当然,mysql数据库表要设置成utf8字符集。

-- ----------------------------

-- Table structure for `algoinfo`

-- ----------------------------

DROP TABLE IF EXISTS `algoinfo`;

CREATE TABLE `algoinfo` (

  `AlgoSubType` int(11) NOT NULL COMMENT '算法包小类',

  `AlgoVersion` varchar(50) CHARACTER SET utf8 NOT NULL COMMENT '算法包版本号',

  `Manufacture` varchar(10) CHARACTER SET utf8 NOT NULL COMMENT '厂商',

  `FirstLoadTime` datetime DEFAULT NULL COMMENT '第一次载入时间',

  `LoadTimes` int(11) NOT NULL DEFAULT '0' COMMENT '加载次数',

  `RunningTime` bigint(20) NOT NULL DEFAULT '0' COMMENT '累积运行时间',

  `LastLoadTime` datetime DEFAULT NULL COMMENT '最后一次加载时间',

  `NodeIP` varchar(30) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '节点IP地址',

  `AlgoFunctionDescript` varchar(300) CHARACTER SET utf8 DEFAULT '' COMMENT '算法功能描述',

  `AlgoResDescript` varchar(300) CHARACTER SET utf8 DEFAULT '' COMMENT '算法资源需求',

  `AlgoType` int(11) NOT NULL COMMENT '算法包类型',

  `AlgoPath` varchar(300) CHARACTER SET utf8 DEFAULT '' COMMENT '算法包路径',

  `ProcessId` int(11) NOT NULL COMMENT '算法包进程id',

  `DueDate` datetime DEFAULT NULL COMMENT '算法包到期时间',

  PRIMARY KEY (`AlgoSubType`,`AlgoVersion`,`Manufacture`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

你可能感兴趣的:(c++ 插入mysql数据库中文字符串的时候,数据库中显示乱码)