MySQL VARCHAR可以存储任何字符吗?

时间:2009-12-27 07:40:23

标签: mysql database

MySQL VARCHAR可以存储任何字符,如空值和换行符吗?

2 个答案:

答案 0 :(得分:5)

MySQL可以存储任何字符,但是根据指定的编码,如果与显示编码不同,某些字符可能会被误传。

varchars可以包含任何字符,甚至是0x00,因为它不是以空字符结尾的字符串,而是长度指定的字符串,其中长度在字符串的开头指定为2或4字节值。

我不确定Char列,但是我猜它们在第一个0x00表示字符串结束的意义上是空终止的(尽管存储仍然占用了整个长度)。

如果要存储真实的字节数据,则应使用BLOB类型。这也是一个长度指定类型,保证包含你输入的任何数据,并且完全不受编码的影响。

答案 1 :(得分:3)

您应该使用BINARY and VARBINARY data types来存储不可打印字符的字符串,尤其是如果您想要单个字节的字符串而不是实际的文本字符(可以是多字节)。