`
paulfzm
  • 浏览: 888345 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

mysql 设置数据表编码

阅读更多

MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

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

mysql> SHOW VARIABLES LIKE '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/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

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

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


1.  SET NAMES 'utf8';

它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

2. 创建数据库
mysql> create database name character set utf8;

3.
创建表
CREATE TABLE `type` (
`id` int(10) unsigned NOT NULL auto_increment,
`flag_deleted` enum('Y','N') character set utf8 NOT NULL default 'N',
`flag_type` int(5) NOT NULL default '0',
`type_name` varchar(50) character set utf8 NOT NULL default '',
PRIMARY KEY (`id`)
)  DEFAULT CHARSET=utf8;

4.
修改数据库成utf8的.
mysql> alter database name character set utf8;

5.
修改表默认用utf8.
mysql> alter table type character set utf8;

6. 修改字段用utf8
mysql> alter table type modify type_name varchar(50) CHARACTER SET utf8;

分享到:
评论
1 楼 yimingxing 2010-10-06  
楼主你好,我的mysql数据库插入中文内容报错,手动可以插入中文不乱码,而用sql语句就报错了,好想是乱码。不知道怎么解决

相关推荐

    中国省市区城市列表mysql数据表,可直接导入数据库、可转JSON数据,带行政区划码和经纬度

    标题中的“中国省市区城市列表mysql数据表”指的是一个包含了中国所有省份、城市、区县的数据表,专门设计用于MySQL数据库系统。这个数据表能够帮助用户快速构建与地理位置相关的应用程序,比如地图服务、物流配送...

    MySQL中文编码设置

    ### MySQL中文编码设置 在Java Web开发过程中,MySQL数据库中的中文编码问题是非常常见的技术难题之一。如果处理不当,可能会导致中文显示乱码、数据插入失败等问题。本文将深入探讨MySQL中文编码的相关设置,并...

    省市区数据表mysql

    "省市区数据表mysql"这个主题涉及到的是地理信息在MySQL中的存储和管理,这对于构建地理位置相关的应用程序,如物流系统、外卖平台或者房产网站等,都是基础且关键的部分。 在MySQL中,省市区数据通常会用到三张...

    Mysql数据库编码问题 (修改数据库,表,字段编码为utf8)

    MySQL数据库编码问题涉及到字符集的选择、配置以及数据的迁移和处理。字符集是决定数据库中存储和检索文本数据的方式,对于多语言支持和数据迁移至关重要。UTF-8是一种广泛使用的多字节字符编码,支持全球大部分语言...

    高德mysql信息表:区域名称、城市编码、邮政编码、经纬度、名称拼音

    本文将深入探讨与给定标题和描述相关的知识点,包括“高德mysql信息表”、“高德API”、“地址编码”、“全国省市区”数据、“城市编码”、“邮政编码”、“经纬度”以及“名称拼音”。 首先,高德API是一个开放...

    mysql 测试数据集,单表200万条数据

    - 约束:设置NOT NULL、UNIQUE、FOREIGN KEY等约束,保证数据的有效性。 - 主键:每张表应有一个主键,用于唯一标识每条记录,如自动增长的整数ID。 3. 性能优化: - 索引:为常用查询字段创建索引,提高查询...

    Mysql 版中国省市区数据表SQL

    ### MySQL版中国省市区数据表的关键知识点 #### 1. 数据表设计与目的 - **设计目的**:MySQL版中国省市区数据表旨在为开发者提供一个结构化且易于查询和管理的数据库模型,以便在应用中高效使用中国行政区划信息。 ...

    mysql-省市县-表结构+表数据

    mysql-省市县-表结构+表数据,用mysql sql语句写的省市区信息代码,可以直接运行用哦

    Mysql字符集编码详解

    二、数据库、数据表和连接部分的编码设置 1. 设置数据库和数据表编码 在创建数据库和数据表时,需要指定字符集。如果不指定,数据库将使用默认的latin1字符集。常见的字符集包括gb2312、gbk、utf8等。可以通过...

    全国省市区地址编码表mysql

    总之,"全国省市区地址编码表mysql"是一个实用的资源,对于需要处理中国地区数据的项目来说,它是不可或缺的基础数据。正确理解和使用这个表,可以有效地支持各种业务需求,提高数据处理的准确性和效率。

    全国行政区域省市区代码 MySQL多表设计+数据

    本案例中的"全国行政区域省市区代码 MySQL多表设计+数据"是一个典型的地理信息存储方案,适用于构建诸如人口统计、物流配送、销售分析等系统。下面我们将深入探讨这个主题。 首先,我们看到有三个SQL脚本文件:`...

    mysql插入数据库编码解决

    在处理MySQL数据库插入中文数据时,经常遇到编码问题导致乱码。这主要是由于不同环节的编码不一致所造成的。以下是两种解决方法,适用于普通Web项目和Struts框架的项目。 ### 方法一:普通Web项目 #### 1. 页面...

    更改MySql数据库的默认编码格式

    在 MySQL 数据库中,默认的编码格式对于数据的存储和读取起着至关重要的作用。如果我们想要更改 MySQL 数据库的默认编码格式,该如何操作呢?下面我们将详细地介绍如何更改 MySQL 数据库的默认编码格式。 一、设置...

    中国行政区mysql表及数据

    采用一个表记录行政、行政区代码、邮编等信息 CREATE TABLE `sys_china_regions` ( `id` int(11) NOT NULL AUTO_INCREMENT '也是行政区代码', `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL ...

    最新全国省市区县(含港澳台)的mysql数据表

    【标题】"最新全国省市区县(含港澳台)的mysql数据表"涉及的主要知识点是MySQL数据库管理和地理信息系统的结合,特别是如何在MySQL中构建一个包含全国所有省份、城市、区县,包括港澳台地区的数据表。这通常用于...

    2020最新mysql数据库地理位置数据,包含省市区街道,及编码,数据结构到街道

    本资源“2020最新mysql数据库地理位置数据”提供了详细的省市区街道信息,以及相关的编码,这对于构建地理信息系统(GIS)或者进行区域数据分析来说至关重要。 首先,让我们深入了解一下MySQL中的数据结构。在描述...

    修改MySQL数据库中表和表中字段的编码方式的方法

    在MySQL配置文件(如`my.cnf`)或连接字符串中设置正确的字符集,可以避免在传输数据时出现编码问题。 在某些情况下,你可能还需要更新已有的数据。例如,如果你有一张已经存储了大量数据的表,且数据的编码方式与...

    MySQL编码与中文显示

    MySQL 的编码方式是指数据库中存储数据的编码格式。 MySQL 的默认编码是 Latin1,也就是 ISO-8859-1 编码,这种编码格式不支持中文字符。因此,如果我们需要在 MySQL 中存储中文数据,就需要修改数据库的默认编码为 ...

    民族mysql数据库表

    包括汉族和各少数民族得数据表,可直接导入数据库使用

    2020最新,全国省市区地址编码表,mysql文件,带最新高新区划分

    2020最新,全国省市区地址编码表,mysql文件, 支持一键导入数据,带最新高新区划分,带官方区域编码

Global site tag (gtag.js) - Google Analytics