mysql数据库存中文字段

本文介绍如何在MySQL数据库中设置中文字段的编码为UTF8,确保中文字符能够正确存储和显示。通过在创建数据库时指定默认字符集和校对规则,可以避免中文乱码问题。

mysql数据默认编码是拉丁,而我们更多的使用utf8,


在创建库的时候执行参数即可:


CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

posted on 2018-10-23 20:01  吃瓜的瓜农 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/guanong/p/9838957.html

### 如何在 MySQL 数据库中文信息并设置编码为 utf8mb4 为了确保 MySQL 能够正确储和处理中文字符,建议将数据库、表以及列的字符集设置为 `utf8mb4`。这是因为 `utf8mb4` 是一种扩展版本的 UTF-8 字符集,在 MySQL 中能够支持完整的 Unicode 字符范围,包括表情符号和其他特殊字符。 以下是实现这一目标的具体方法: #### 方法一:通过 SQL 命令修改现有数据库和表的字符集 如果已经在一个数据库,并希望将其字符集更改为 `utf8mb4`,可以执行以下命令: ```sql ALTER DATABASE DATABASE_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 这条语句会更改整个数据库的默认字符集及其校对规则[^1]。 对于特定的表,也可以单独调整其字符集: ```sql ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 此操作适用于已在的表结构,它不仅改变表本身的字符集,还会自动更新该表中的所有字段以匹配新的字符集设定[^4]。 #### 方法二:新建数据库时指定字符集 当创建一个新的数据库实例时,可以直接定义它的默认字符集为 `utf8mb4`: ```sql CREATE DATABASE test_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 这样做的好处是在后续建立任何新表或插入数据之前就已经设定了合适的环境配置[^3]。 #### 方法三:全局配置文件 my.cnf 的修改 为了让所有的连接都使用统一的标准字符集,可以在 MySQL 的初始化参数文件 `my.cnf` 或者 Windows 下对应的 `my.ini` 文件中加入下面的内容: ```ini [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] collation-server = utf8mb4_unicode_ci init-connect='SET NAMES utf8mb4' character-set-server = utf8mb4 ``` 完成编辑之后重启服务使改动生效即可[^5]。 以上三种途径都可以有效地解决 MySQL 中文字符串的问题,其中前两种适合针对单个项目做局部优化;而第三种则更适合企业级应用场合下的一致性和长期维护需求考虑。 ```python # Python 示例代码展示如何验证 mysql 连接使用的字符集是否为 utf8mb4 import pymysql connection = pymysql.connect( host="localhost", user="root", password="password", database="test_db" ) with connection.cursor() as cursor: sql_query = "SHOW VARIABLES LIKE 'character_set%%';" cursor.execute(sql_query) results = cursor.fetchall() for row in results: print(f"{row[0]}: {row[1]}") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值