我在 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/