MySQL的字符集支持(Character Set Support)有两个方面:
字符集(Character set)和排序方式(Collation)。
对于字符集的支持细化到四个层次:
服务器(server),数据库(database),数据表(table)和连接(connection)。
1.MySQL默认字符集
MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。
但是,传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置,那么,默认的配置从何而来呢?
(1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;
(2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
(3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;
(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;
(5)当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;
(6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;
(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;
(8)character_set_client 指的是当前客户端的字符集
简单的总结一下,如果什么地方都不修改,那么所有的数据库的所有表的所有栏位的都用 latin1 存储,不过我们如果安装 MySQL,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把 default_character_set 设置为 UTF-8,这保证了缺省情况下,所有的数据库的所有表的所有栏位的都用 UTF-8 存储。
2.查看默认字符集(默认情况下,mysql的字符集是latin1(ISO_8859_1)
通常,查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3.修改默认字符集
(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
如 default-character-set = utf8
character_set_server = utf8
修改完后,重启mysql的服务,service mysql restart
使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8
+--------------------------+---------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
(2) 还有一种修改字符集的方法,就是使用mysql的命令
SET character_set_client = gbk ;
SET character_set_connection = gbk ;
SET character_set_database = gbk ;
SET character_set_results = gbk ;
SET character_set_server = gbk ;
SET collation_connection = utf8 ;
SET collation_database = utf8 ;
SET collation_server = utf8 ;
一般就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:
SET NAMES 'utf8';
它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
总结:
因此,使用什么数据库版本,不管是3.x,还是4.0.x还是4.1.x,其实对我们来说不重要,重要的有二:
1) 正确的设定数据库编码.MySQL4.0以下版本的字符集总是默认ISO8859-1,MySQL4.1在安装的时候会让你选择。如果你准备使用UTF- 8,那么在创建数据库的时候就要指定好UTF-8(创建好以后也可以改,4.1以上版本还可以单独指定表的字符集)
2) 正确的设定数据库connection编码.设置好数据库的编码后,在连接数据库时候,应该指定connection的编码,比如使用jdbc连接时,指定连接为utf8方式.
相关推荐
别再让充电器‘罢工’了!聊聊Charger里VIN-DPM这个不起眼但关键的功能
本文深入探讨了充电IC中的VIN-DPM(输入电压动态电源管理)功能,揭示其如何智能调节充电策略以避免电源适配器过载。通过实际案例和实验室数据,展示了VIN-DPM在提升充电稳定性和效率中的关键作用,并提供了选型、设计和故障排查的实用指南。
MYSQL 字符集问题
出自:http://www.blogjava.net/wldandan/archive/2007/10/16/142669.html MySQL的字符集支持(Character Set Support)有两个方面: 字符集(Character set)和排序方式(Collation)。 对于字符集的支持细化到四个层次: 服务器(server),数据库(database)...
专栏丨华为HN8145XR光猫获取超级管理员密码
摘要:本文详细介绍了华为HN8145xr光猫获取超级管理员权限的完整步骤。首先通过ONT使能工具补全shell,然后利用Telnet登录光猫后台进行操作。文章提供了多种获取超级密码的方法,包括配置文件解密、一键查询工具等,并针对联通光猫特别说明了默认密码格式(CUAdmin+后八位数字)。此外,还介绍了恢复出厂设置、修改SSID等实用操作,帮助用户完全掌控光猫设备。文末附有详细的命令行操作指南,适合有一定技术基础的用户参考。
mysql中文乱码
首先确定 mysql的字符集 show variables like 'character%'; | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_dat
第11.4节 混合储能系统能量管理
混合储能系统(HESS)的能量管理策略采用分层架构实现多时间尺度优化:调度层(小时级)进行经济优化,协调层(秒级)基于频率分解分配功率,执行层(毫秒级)实现快速跟踪。深度强化学习(DRL)方法通过定义状态空间、动作空间和多目标奖励函数,能有效处理系统不确定性和多目标优化问题。HESS性能评估需综合技术指标(如调节性能Kp值、设备寿命指标)和经济指标(净现值NPV、平准化储能成本LCOS),并遵循"建模-仿真-实验"的闭环流程。
在 SAP S/4HANA 的 BP 事务里做保存前校验:BDT 事件、BUPA_FURTHER_CHECKS 与 CVI 扩展 BAdI 一次讲透
SAP BP事务保存前校验机制解析 摘要:本文系统梳理了SAP BP事务保存前的校验机制,揭示了三种关键校验点的差异与适用场景: BDT框架DCHCK事件:最靠近UI层,适合屏幕字段级校验,但API调用时可能失效 Classic BAdI BUPA_FURTHER_CHECKS:全局拦截点,可阻断整个BP保存,适合核心业务规则 CVI扩展校验:仅管控供应商/客户段落,需注意可能产生"BP已保存但段落未保存"的情况 文章通过真实案例(如黑名单校验、付款冻结等)展示了各校验点的最佳实践,并特
linux mysql修改默认字符集_linux下怎么修改mysql的字符集编码默认分类
安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件;由于linux下MySQL的默认安装目录分布在不同的文件下;不像windows一样放在同一目录下,只需修改其中的my.ini文件,重起后就生效了;所以先来看看linux下MySQL的数据库文件、配置文件和命令文件分别在不同的目录 :1、数据库目录,其所创建的数据库文件都在该...
063、推挽变换器的磁偏问题与解决
本文针对推挽变换器中的磁偏问题展开分析。作者通过实际案例指出,磁偏主要由开关管导通压降差异和驱动信号不对称引起,会导致变压器饱和、MOS管炸毁等问题。文章提供了四种解决方案:采用电流模式控制、添加隔直电容、优化对称驱动设计以及引入磁芯气隙(作为最后手段)。调试时应重点观察原边电流波形对称性、变压器声音和直流分量。作者强调实践经验的重要性,建议预留隔直电容位置,并指出推挽拓扑在500W以上功率场合的局限性。这些基于实战的经验总结为电源工程师提供了有价值的参考。
linux 系统下修改Mysql默认字符集
2019独角兽企业重金招聘Python工程师标准>>> ...
国产服务器系统的PXE无人值守自动化安装部署——以银河麒麟、统信UOS、OpenEuler这三类服务器系统为例
本文详细介绍了三种国产服务器系统(银河麒麟、统信UOS、OpenEuler)的PXE无人值守自动化安装方法。主要内容包括:1)从系统ISO镜像中提取内核文件和根系统文件;2)编写GRUB菜单引导文件;3)配置自动应答文件实现自动化安装;4)重启PXE服务并测试安装过程。文章特别强调了硬盘容量需≥100GB、UEFI模式设置等注意事项,并提供了root密码重置方法。对于x86架构Windows上模拟ARM架构系统安装也给出了具体命令。通过完整的配置流程,可实现国产服务器系统的快速批量部署。
药物对接仿真软件:HADDOCK_(9).结果分析方法
HADDOCK是一种强大的药物对接仿真工具,通过对生成的输出文件进行详细的分析,我们可以验证仿真结果的可靠性,并为进一步优化药物设计提供依据。常见的分析方法包括解读输出文件、使用可视化工具进行结构分析、评估对接模型的稳定性和准确性等。通过这些步骤,我们可以更全面地了解受体和配体的结合模式,从而提高药物设计的成功率。
mysql字符集查看与设置
一、查看 MySQL 数据库服务器和数据库字符集 mysql> show variables like '%char%'; +--------------------------+-------------------------------------+------ | Variable_name | Value ...
3D iToF深度分辨率测量
本文展示了RGB-D传感器在三维测量中的高精度表现。标靶深度图显示其具备清晰、低噪、无干扰的特性,点云数据完整度高且轮廓分明。该技术已成功应用于物流(体积测量误差<1%)、工业(高反光部件装配检测)和农业(果蔬成熟度分级)等领域,验证了其硬件和算法的可靠性,能够满足不同场景下的三维测量需求。
MySQL字符集是什么
一、什么是字符集 字符集指的是某个范围字符的编码规则 比如utf8字符集对于所有中文汉字采用3个字节来表示(编码),所以我们称utf8为一种字符集。 这里的范围就是指所有的中文汉字 编码规则就是指 都采用3个字节来表示一个汉字 比如ASCII字符集对于所有英文字母采用1个字节来表示(编码),所以我们称ASCII为一种字符集。 这里的范围就是指所有的英文字母 编码规则就是指 都采用1个字节来表示一个字母 二、MySQL客户端和MySQL服务端字符集是如何交互的 1、前置知识 MySQL客户端
Outlook Express 6 (OE6) for Win7/Win8/Win10
英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
MySQL 字符集
字符集是计算机科学中的一个重要概念,用于定义文本中可以使用的字符集合。而 MySQL 字符集则是 MySQL 数据库管理系统中用于存储和处理文本数据的字符集。
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
MySQL字符集详解
今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL字符集。 一、MySQL字符集简介 二、查看和设置MySQL字符集 (一)查看当前字符集设置 (二)更改默认字符集 (三)在创建表时指定字符集 三、更改MySQL字符集
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
MySQL中的字符集与字符序
在大多数情况下,我们并不需要了解字符集与字符序,但是在涉及到不同字符集的转换时可能会出现问题,这时了解一下相关的知识还是有帮助的。我们首先了解一下字符集的原理。
MYSQL字符集和字符序
字符是人类语言最小的表意符号,例如‘A’,‘B’等,给定一系列字符,并对每个字符赋予一个数值,用数值来代表对应的字符,这个数值就是字符的编码。俩如,假设给字符‘A’赋予整数65,给字符‘B’赋予整数66,则65就是字符‘A’的编码,66就是字符‘B’的编码。给定一系列字符并赋予对应的编码后,所有这些字符和编码对的集合就是字符集。字符序是指在同一字符集内字符之间的比较规则。只有确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系。
深入Mysql字符集设置
· 作者:laruence(http://www.laruence.com/) · 本文地址: http://www.laruence.com/2008/01/05/12.html · 转载请注明出处 根据Chaos Wang的PPT整理而成, 在此再次感谢Chaos Wang的此次TechTalk 基本概念• 字符(Character)是指人类语言中最小
【MySQL】之字符集与字符序
目录 一、字符集与字符序的概述 二、Server 字符集与字符序 三、Database 字符集与字符序 四、Table 字符集与字符序 五、Column 字符集与字符序 六、字符集与字符序的选择 一、字符集与字符序的概述 在数据的存储上,MySQL 提供了不同的字符集支持,而在数据的对比操作上,则提供了不同的字符序支持。MySQL 提供了不同级别的设置,包括 server 级、database 级、table 级、column 级,可以提供非常精准的设置。 1、字符集与字符序的定义: 字符集(c
MySql基础,MySql字符集
文章目录MySQL字符集和校对规则详解MySQL字符集的转换过程MySQL查看字符集和校对规则MySQL设置默认字符集和校对规则服务器字符集和校对规则数据库字符集和校对规则表字符集和校对规则列字符集和校对规则连接字符集和校对规则MySQL字符集的选择 MySQL字符集和校对规则详解 先来简单了解一下字符、字符集和字符编码。 字符(Character):是计算机中字母、数字、符号的统称,一个字符可以是一个中文汉字、一个英文字母、一个阿拉伯数字、一个标点符号等。 计算机是以二进制的形式来存储数据的。平时我们在
mysql字符_MySQL字符集详解
一、字符集和校验规则字符集是一套符合和编码,校验规则(collation)是在字符集内用于比较字符的一套规则,即字符集的排序规则。MySQL可以使用对种字符集和检验规则来组织字符。MySQL服务器可以支持多种字符集,在同一台服务器,同一个数据库,甚至同一个表的不同字段都可以指定使用不同的字符集,相比oracle等其他数据库管理系统,在同一个数据库只能使用相同的字符集,MySQL明显存在更大的灵活性...
MySQL字符集字符序
MySQL字符集字符序
MySQL的字符集
mysql字符集
mysql 修改字段的字符集_MySQL修改字符集
一、修改字符集1、修改数据库字符集alter database db_new charset utf8mb4;2、修改表字符集alter table tb charset=utf8mb4;3、修改表字符集和校验规则alter table tb charset=utf8mb4 collate=utf8mb4_general_ci;4、修改表字段的字符集和校验规则alter table tb modi...
mysql字符转义
Mysql 字符转义 在字符串中,某些序列具有特殊含义。这些序列均用反斜线(‘\’)开始,即所谓的转义字符。MySQL识别下面的转义序列: \0 ASCII 0(NUL)字符。 \' 单引号(‘'’)。 \" 双引号(‘"’)。 \b 退格符。 \n 换
416



被折叠的 条评论
为什么被折叠?



