c++ - 使用C的MySQL varchar中的编码字符缓冲区存储问题

标签 c++ mysql c

我在 C 中有一个大小为 512 的编码字符缓冲区数组,在 MySQL 中有一个 varchar 数据库字段。是否可以将编码后的字符缓冲区存储到varchar中?

我试过这个,但我面临的问题是它只将缓冲区的有限区域存储到数据库中而忽略了。实际问题是什么,我该如何解决这个问题?

最佳答案

编码不清楚是什么意思。

如果您的意思是您有任意字节值字符串,那么 varchar 不适合,因为它会尝试修剪尾随空格。在这种情况下更好的选择是使用 varbinary 字段。

如果您要插入的字符串包含控制字符,您可能最好将其转换为十六进制字符串并按如下方式插入:

create table xx ( 
    v varbinary(512) not null );

insert into xx values ( 0x68656C6C6F20776F726C64);

这将防止工具链中的任何组件因 NUL 字符等而阻塞。

关于c++ - 使用C的MySQL varchar中的编码字符缓冲区存储问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2293979/

相关文章:

c++ - 指针和面向对象编程

c++ - Win32、MFC : Ending threads

c - 将有符号的 char 数组传递给需要 const char 指针的函数会导致数组值出现乱码

c - 简单的 C 内联链接器错误

c - Unix socket编程如何获取本地IP地址和端口?

C++11嵌套宏调用?

c++ - 从不同的 QThread 访问 QObject 方法的安全性

MySQL 对每 X 行求和

sql - 向 mysql 插入列表

mysql - NOT IN 不在 mysql 程序中工作