gpt4 book ai didi

c++ - 从 C++ 到 MySQL 到 C++ 获取和设置 wchar_t 字符

转载 作者:太空宇宙 更新时间:2023-11-04 09:07:35 25 4
gpt4 key购买 nike

我有一个数据库 (Mysql),其中有一些 UTF-8 格式的字段(如果需要,我可以更改它)。

我使用旧的 MySQL“Communicator”或其前身,我在大约 3 年前编写了代码,今天我所知道的是我链接了 libmysql.lib 和#include“mysql.h”(请告诉您是否需要我去挖掘更多)。

问题是我不知道如何插入和读取非 ASCII。

我知道 MultiByteToWideChar,但有些代码在 Linux (gcc) 下编译,所以我猜这行不通。

当代码应该在 Linux 和 Windows 上运行时,从/向 MySQL 数据库获取和设置 std::wstrings(或 wchar_t*)的标准过程是什么?

最佳答案

使用 mysql_set_character_set() API 将连接字符集更改为“utf8”。将您的 wstrings 转换为 UTF-8(没有库函数,但您可以很容易地编写它,或者使用 iconv),并将 UTF-8 指针传递给 MySQL。

旧版本的 MySQL C++ API (>5.0.7) 中不存在此 API,因此请先检查您的 header 。

注意:在带有 Visual Studio 的 Win32 上,wchar_t 数据类型是 short,而不是 int。您可以将连接字符集更改为“ucs2”并直接传递 wchar_t 指针,只需将它们强制转换为 char*。

关于c++ - 从 C++ 到 MySQL 到 C++ 获取和设置 wchar_t 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7547928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com