MySql 编码设置实际应用代码示例

 2022-10-27    358  

以下的文章主要讲述的是MySql 编码设置的实际操作步骤,我们大家都知道MySQL 4.1的实际应用字符集所支持(Character Set Support)主要有2个方面:即,字符集(Character set)与其实际的排序方式(Collation)。

对于实际应用的相关字符集的支持细化到四个层次:

MySql 编码设置实际应用代码示例

服务器(server),数据库(database),数据表(table)和连接(connection)。

查看系统的字符集和排序方式的设定可以通过下面的两条命令或mysql> status 。

mysql>SHOWVARIABLESLIKE'character_set_%'; 
+--------------------------+----------------------------+ 
|Variable_name|Value| 
+--------------------------+----------------------------+ 
|character_set_client|latin1| 
|character_set_connection|latin1| 
|character_set_database|latin1| 
|character_set_results|latin1| 
|character_set_server|latin1| 
|character_set_system|utf8| 
|character_sets_dir|/usr/share/mysql/charsets/| 
+--------------------------+----------------------------+ 
7rowsinset(0.00sec) 

mysql>SHOWVARIABLESLIKE'collation_%'; 
+----------------------+-------------------+ 
|Variable_name|Value| 
+----------------------+-------------------+ 
|collation_connection|latin1_swedish_ci| 
|collation_database|latin1_swedish_ci| 
|collation_server|latin1_swedish_ci| 
+----------------------+-------------------+ 
3rowsinset(0.00sec)

上面列出的值就是系统的默认值。(很奇怪系统怎么默认是latin1的瑞典语排序方式)…

当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。MySql 编码设置解决方法是在发送查询前执行一下下面这句:

1.SET NAMES ‘utf8’;

它相当于下面的三句指令:

SETcharacter_set_client=utf8; 
SETcharacter_set_results=utf8; 
SETcharacter_set_connection=utf8;

2. 创建数据库

mysql>createdatabasenamecharactersetutf8;

3. 创建表

CREATETABLE`type`( 
`id`int(10)unsignedNOTNULLauto_increment, 
`flag_deleted`enum('Y','N')charactersetutf8NOTNULLdefault'N', 
`flag_type`int(5)NOTNULLdefault'0', 
`type_name`varchar(50)charactersetutf8NOTNULLdefault'', 
PRIMARYKEY(`id`) 
)DEFAULTCHARSET=utf8;

4. 修改数据库成utf8的.

mysql>alterdatabasenamecharactersetutf8;

5. 修改表默认用utf8.

mysql>altertabletypecharactersetutf8;

6. 修改字段用utf8

mysql>altertabletypemodifytype_namevarchar(50)CHARACTERSETutf8;

  •  标签:  
  • MySQL
  •  

原文链接:https://77isp.com/post/9946.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。