by kevin
  
    5.   
      十一月 2014 23:16
  >
  
  
  
碰到一个恶心的问题:
  无法保存包含中文的字符串,查了很久,就懂的是字符集的问题。
  mysql的字符集在server,database,table,column都可以定义。
  查看字符集:
  数据库级别
             1: SELECT default_character_set_name FROM information_schema.SCHEMATA S
       2: WHERE schema_name = "schemaname";
 
 
表级别
  
       1: SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,
       2:        information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
       3: WHERE CCSA.collation_name = T.table_collation
       4:   AND T.table_schema = "schemaname"
       5:   AND T.table_name = "tablename";
 
 
列级别
  
       1: SELECT character_set_name FROM information_schema.`COLUMNS` C
       2: WHERE table_schema = "schemaname"
       3:   AND table_name = "tablename"
       4:   AND column_name = "columnname";
 
 
修改数据库字符集:
  
       1: ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];
 
 
把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
  
       1: ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
 
 
只是修改表的默认字符集:
  
       1: ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
 
 
修改列的字符集:
  
       1: ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];