MALOUDA-PSA 2025-03-19 20:07 采纳率: 85.6%
浏览 12

c++ 链接MYSQL字符编码的问题

MYSQL 数据库字符集是 utf8mb4 , C++ 是 UNICODE字符集,链接MYSQL获取数据:

    if (mysql_set_character_set(conn, "utf8") != 0) {
        std::cerr << "Error setting character set to utf8: " << mysql_error(conn) << std::endl;
    }


这里必须时 utf8, , 用 utf8mb4 就不行 mysql_options(conn, MYSQL_SET_CHARSET_NAME, "utf8mb4"); 这个和上面等价吗?

  • 写回答

3条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-03-19 20:08
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    不完全等价。在MYSQL中,utf8mb4是支持包含四字节字符的UTF-8字符集,而utf8只支持三字节的UTF-8字符集。在C++中,UNICODE字符集表示的是全球各种语言文字的字符集。 当MYSQL的数据库字符集是utf8mb4时,你可以将C++的UNICODE字符集与utf8mb4进行对接。可以通过使用mysql_options(conn, MYSQL_SET_CHARSET_NAME, "utf8mb4")来设置字符集为utf8mb4,而不需要将其设置为utf8。 如果你将C++的UNICODE字符集与utf8进行对接,可能会导致无法正确处理数据库中包含四字节字符的数据,因此建议根据数据库的实际字符集设置C++的字符集。
    评论

报告相同问题?

问题事件

  • 创建了问题 3月19日