mysql> show columns from 教师;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| 名字  | char(50) | NO   |     | NULL    |       |
| 年龄  | int(11)  | NO   |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)mysql> insert into 教师 values('张三',NULL);
ERROR 1048 (23000): Column '骞撮緞' cannot be null那里的字段名不是年龄,应该算是乱码了吧,是不是因为 CHAR 型数据以一个字节存储字符?  我知道用一个字节存储汉字要出错的。但书上的例子用的是 char(50)。   在MFC中编程,所有字符串都要用UNICODE的。 MYSQL不用吗。这里的提示,怎么能让他显示正确的字符串。 补充一下,我那里是故意插入 NULL 的。现在是想研究字符串的问题。

解决方案 »

  1.   

    utf-8 在什么时候设定。是配置文件吗。我在配置的时候选的是 GB开头的
      

  2.   

    你可以设置你的MYSQL数据库的默认字符集,也可以设置你的列的字符集。参考下贴中有关字符集的介绍。
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  3.   

    show create table  tbname
      

  4.   

    big5     | Big5 Traditional Chinese
    gb2312   | GB2312 Simplified Chinese
    gbk      | GBK Simplified Chinese
    utf8     | UTF-8 Unicode红色部分是什么意思
      

  5.   

    unicode 特指utf-16,微软,java,python支持。
    其他大都不支持,但他们都支持另外一种不兼容unicode的unidode,即utf8
    linux和mysql都支持支urf8,不支持unicode.
    它们各占有一席之地,故神仙打架凡人遭殃,这帮家伙每天让我们看到乱码,过年了我也诅咒之all~~
      

  6.   

    unicode有很多种形式,utf8是为了节省存储空间,描述unicode的一种形式。
      

  7.   

    win系统的内码都是unicode,有代码页,应该是ucs-2,两字节码实际上有两个标准组织的unicodeutf8是unicode的一种编码方式.所以,是可以相互转换的.utf8是不节省存储空间. 相反要长.utf8的出现主要应用还是在web领域.
    它为web提供了一种统一可理解的编码方式.