首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C++实现MySQL变量字符的编码字符缓冲存储问题

问使用C++实现MySQL变量字符的编码字符缓冲存储问题
EN

Stack Overflow用户
提问于 2010-02-19 12:00:36
回答 2查看 359关注 0票数 1

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-22 22:42:35

不清楚你所说的编码是什么意思。

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

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

代码语言:javascript
复制
create table xx ( 
    v varbinary(512) not null );

insert into xx values ( 0x68656C6C6F20776F726C64);

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

票数 3
EN

Stack Overflow用户

发布于 2010-02-19 12:47:20

为表声明的varchar大小是多少?

varchar字段通常设置为255个字节,而不是字符。从MySQL 5.0.3开始,您可以使用更长的varchar字段。

听起来你需要一个varchar(512)字段,这就是你拥有的吗?

请参阅http://dev.mysql.com/doc/refman/5.0/en/char.html

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2293979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档