字符集问题
MySQL中的字符集与编码设置指南

MySQL中的字符集与编码设置指南随着互联网的不断发展,数据库在我们的生活中扮演着越来越重要的角色。
而对于MySQL这样的关系型数据库管理系统来说,字符集和编码是一个关键的概念。
正确地设置字符集和编码,可以保证数据的准确性和可靠性。
本文将探讨MySQL中的字符集和编码设置指南,帮助读者理解并正确地配置数据库。
一、字符集与编码的基本概念1. 字符集(Character Set)字符集是指用来表示字符的字符集合。
在计算机中,每个字符都对应着一个特定的编码。
常见的字符集有ASCII、Unicode等。
在MySQL中,也支持多种字符集,如UTF-8、Latin1等。
2. 编码(Encoding)编码是指将字符集中的字符按照一定规则映射为计算机可以识别的二进制数据的过程。
不同的编码规则可以使得相同的字符集在计算机中有不同的表示方式。
常见的编码方式有UTF-8、GBK等。
二、MySQL中的字符集设置在MySQL中,可以通过以下方式设置字符集:1. 服务器级别设置可以通过修改MySQL配置文件(f或my.ini)中的配置项来设置字符集。
常见的配置项有:```[mysqld]character_set_server=utf8collation_server=utf8_unicode_ci```以上配置项将服务器的字符集设置为UTF-8,校对规则设置为utf8_unicode_ci。
2. 数据库级别设置可以通过在创建数据库时指定字符集来设置。
例如:```CREATE DATABASE my_database CHARACTER SET utf8 COLLATEutf8_unicode_ci;```以上命令将创建名为my_database的数据库,并将其字符集设置为UTF-8,校对规则设置为utf8_unicode_ci。
3. 表级别设置可以通过在创建表时指定字符集来设置。
例如:```CREATE TABLE my_table (id INT,name VARCHAR(20)) CHARACTER SET utf8 COLLATE utf8_unicode_ci;```以上命令将创建名为my_table的表,并将其中的字段字符集设置为UTF-8,校对规则设置为utf8_unicode_ci。
MySQL中的字符集和排序规则的设置方法

MySQL中的字符集和排序规则的设置方法MySQL是一个开源的关系型数据库管理系统,广泛应用于各种类型的应用程序中。
字符集和排序规则是MySQL中一项非常重要的设置,它们决定了数据存储、检索和排序的方式。
本文将介绍MySQL中字符集和排序规则的设置方法,并探讨如何选择适合的字符集和排序规则。
一、字符集的设置方法MySQL中的字符集用来定义每个字符的二进制表示方法,包括字符的编码和存储方式。
MySQL支持多种字符集,如UTF-8、GBK、Latin1等。
要设置字符集,可以通过以下方法:1. 使用SET NAMES语句在执行数据库连接之后,可以使用SET NAMES语句设置字符集。
例如,执行以下语句可以将字符集设置为UTF-8:```SQLSET NAMES 'utf8';```这样,后续的查询和插入操作都将使用UTF-8字符集。
2. 在连接字符串中指定字符集在连接MySQL数据库时,可以在连接字符串中指定字符集。
例如,使用PDO连接MySQL时,可以设置charset参数:```PHP$dsn = "mysql:host=localhost;dbname=test;charset=utf8";```这样,在建立数据库连接时就会自动设置相应的字符集。
3. 修改配置文件MySQL的配置文件(f或my.ini)中也可以设置字符集。
找到[mysqld]模块,在该模块后添加如下语句:```Bash[mysqld]character_set_server=utf8```重启MySQL服务后,字符集的设置将会生效。
二、排序规则的设置方法排序规则决定了字符串和文本数据的比较和排序顺序。
MySQL提供了多种排序规则,如utf8_general_ci、utf8_bin、gbk_chinese_ci等。
要设置排序规则,可以使用以下方法:1. 使用COLLATE语句在进行查询操作时,可以使用COLLATE语句指定排序规则。
电脑乱码问题的解决方案

电脑乱码问题的解决方案引言概述:在使用电脑的过程中,我们有时会遇到乱码问题,这给我们的工作和生活带来了一定的困扰。
乱码问题一般是由于字符编码不一致或者字符集不支持导致的。
本文将为大家介绍电脑乱码问题的解决方案,帮助大家更好地解决这一问题。
正文内容:1. 字符编码问题1.1 了解字符编码在解决乱码问题之前,我们需要了解字符编码的基本概念。
字符编码是一种将字符映射为数字的方式,常见的字符编码包括ASCII、UTF-8、GBK等。
不同的字符编码对应不同的字符集,因此在使用电脑时,要确保字符编码的一致性。
1.2 检查文件字符编码当我们遇到乱码问题时,首先要检查文件的字符编码。
可以通过文本编辑器打开文件,并查看文件属性或者保存时选择编码方式。
如果文件的字符编码与当前系统或者应用程序的字符编码不一致,就会导致乱码问题的出现。
1.3 转换字符编码如果发现文件的字符编码与当前系统或者应用程序的字符编码不一致,可以尝试将文件的字符编码进行转换。
常用的字符编码转换工具有iconv、Notepad++等,通过这些工具,我们可以将文件的字符编码转换为正确的编码方式,从而解决乱码问题。
2. 字符集支持问题2.1 确认字符集支持在解决乱码问题时,我们还需要确认系统或者应用程序是否支持所使用的字符集。
有些字符集可能不被默认支持,需要手动安装或者更新相应的字符集。
2.2 安装字符集如果发现系统或者应用程序不支持所使用的字符集,我们可以尝试安装相应的字符集。
可以通过操作系统的更新功能或者手动下载字符集文件进行安装。
安装完成后,重新打开文件或者应用程序,乱码问题可能会得到解决。
2.3 更新应用程序有时乱码问题可能是由于应用程序版本过旧导致的。
在解决乱码问题时,我们可以尝试更新应用程序到最新版本,以确保其支持更多的字符集,从而减少乱码问题的发生。
总结:通过本文的介绍,我们了解到解决电脑乱码问题的几个关键方面。
首先,我们需要了解字符编码的基本概念,确保字符编码的一致性;其次,我们需要检查文件的字符编码,并进行必要的转换;最后,我们还需要确认系统或者应用程序是否支持所使用的字符集,并进行必要的安装或者更新。
查看Oracle字符集及如何修改字符集

查看Oracle字符集及如何修改字符集文章分类:数据库一、什么是oracle字符集Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。
ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。
它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。
影响oracle数据库字符集最重要的参数是NLS_LANG参数。
它的格式如下: NLS_LANG = language_territory.charset它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。
其中:Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。
如:AMERICAN _ AMERICA. ZHS16GBK从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。
所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。
二.查看数据库字符集这涉及三方面的字符集,一是oracel server端的字符集;二是oracle client端的字符集;三是dmp文件的字符集。
在做数据导入的时候,需要这三个字符集都一致才能正确导入。
1、查询oracle server端的字符集有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种:SQL>select userenv(‘language’) from dua l;结果类似如下:AMERICAN _ AMERICA. ZHS16GBK2、如何查询dmp文件的字符集用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。
如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit 打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集:SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;ZHS16GBK如果dmp文件很大,比如有2G以上(这也是最常见的情况),用文本编辑器打开很慢或者完全打不开,可以用以下命令(在unix主机上):catexp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6然后用上述SQL也可以得到它对应的字符集。
达梦数据库要求的字符集

达梦数据库要求的字符集引言字符集是数据库系统中非常重要的概念,它直接影响着数据的存储、传输和处理。
本文主要介绍达梦数据库对字符集的要求,涵盖了字符集的定义、字符集的选择以及字符集的应用。
字符集的定义字符集是指用于表示字符的编码系统,它定义了一组字符与数字之间的对应关系。
在数据库中,字符集用于存储和处理文本数据。
常见的字符集有AS CI I、UT F-8、G BK等。
字符集的选择在选择字符集时,需要考虑如下几个因素:数据源的字符集:1.需要确保数据库字符集能够兼容数据源的字符集,以避免数据丢失或乱码的问题。
应用环境的字符集:2.如果数据库将作为其他应用程序的后端数据库,需要确保数据库字符集与应用环境的字符集一致,以便数据的顺利传输和处理。
数据类型和需求:3.不同的字符集支持的字符范围和存储方式不同,在选择字符集时需要考虑所需存储的数据类型和数据需求。
基于以上因素,达梦数据库提供了多种字符集供选择,如G BK、U TF-8、UT F-16等。
字符集的应用在达梦数据库中,字符集的应用涉及到以下几个方面:数据库的创建和配置在创建数据库时,可以指定所需的字符集,以确保数据库能够正确存储和处理文本数据。
例如,可以使用如下语句创建一个使用UT F-8字符集的数据库:```C R EA TE DA TA BA SE myd a ta ba se CH AR AC TER S ET ut f8;```表的创建和维护在创建表时,可以为每个字段指定合适的字符集和校对规则,以确保数据的一致性和正确性。
例如,创建一个使用GB K字符集的表:```C R EA TE TA BL Em yt abl e(i d IN T,n a me VA RC HA R(100)C H AR AC TE RS ET gb kCO L LA TE gb k_ch in ese_ci);```数据的输入和输出在数据输入和输出过程中,需要确保字符集的转换和兼容性。
Shell脚本中的编码和字符集处理技巧

Shell脚本中的编码和字符集处理技巧在Shell脚本编程中,编码和字符集处理是一个非常重要的问题。
正确地处理字符编码可以避免脚本运行时出现乱码等问题,并且能够确保脚本在不同平台和环境下的稳定性。
本文将介绍几种常见的处理编码和字符集的技巧,帮助读者更好地编写Shell脚本。
一、字符编码的基础知识1. ASCII码ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是现今最常用的字符编码标准,用7位二进制数表示128个字符。
ASCII码主要包括数字、字母、标点符号等常见字符。
2. Unicode编码Unicode是一个国际标准,用来定义字符集中每个字符的唯一编码。
每个字符都分配了一个唯一的整数码点,可以用不同的编码方式来表示。
其中最常见的编码方式是UTF-8。
3. UTF-8编码UTF-8(8-bit Unicode Transformation Format)是一种变长字符编码方式,它可以用来表示Unicode标准中的任何字符。
UTF-8编码使用1到4个字节表示一个字符,可以处理包含各种字符的文本。
二、字符编码处理技巧1. 指定脚本文件编码在Shell脚本文件的开头,可以使用以下注释行指定脚本的编码格式:```bash#!/bin/bash# coding=utf-8```在这个例子中,我们指定脚本的编码为UTF-8。
这样可以确保脚本文件在执行时使用正确的字符编码。
2. 处理文件编码在处理文件内容时,可以使用`file`命令来确定文件的编码格式:```bash$ file -i filename```这个命令会返回文件的MIME类型,包括编码信息。
3. 转换字符编码如果需要将一个文件的编码从一种格式转换为另一种格式,可以使用`iconv`命令:```bash$ iconv -f source_encoding -t target_encoding source_file -o target_file```其中,`source_encoding`是源文件的编码格式,`target_encoding`是目标文件的编码格式。
大字符集脱机手写体汉字识别粗分类问题

0 引 言
随着计算机应用 的 日益普及 , 息 的 自动化输 入 已成 为 信 必然趋势 , 因此 , 实现手写体汉字 的 自动识别 无疑具有重要 的 实用价值 。目前汉字的印刷体识别 和联 机手 写体识别 问题都 得到 了很好 的解决 , 已有产品问世 , 并受到用户的欢迎 。对脱 机手写体汉字识别来说 , 由于字形变化大 、 稳定的特征难 以提 取、 结构信息难以利用等特 点 , 使得对 它 的识别 难度非 常大 , 目前仅在 小字符集方 面取得 了令人 满 意的成果 , 但对 大字符 集 来说 , 仍在进行研究 。针对大字符集汉 字数量多的问题 , 一 般 采用 多级分类 的方法 , 即先粗 分类 , 然后再 细分类 。本文 以 H L 00手写汉字库为基础 , 建了一个实验 系统 , C 20 构 对大字符 集脱机手 写体汉字识 别粗分类 中的一些 问题进行
图 3 索引表细化算法示例
13 特 征提 取 .
我们采用 了常见 的投影特 征 、 网格点阵特征 、 向线素特 方
征 和这几种特征构 成的组合 特征 。经 过预处理后 , 同的汉 不
1 系统 的设计 与实现
1 1 系统框架 .
个完整的脱机手写 体汉字识 别 系统 7个 部分组 成 , 其
总体框架如 图 1所示。
特殊的子类 , 该子类有 一个特 征类 容器 , 以存放各个 子类 的 可 指针 , 这样 , 容器 中不 同的子类指针组合就形成的不同的组合
图 1 大字符集脱机手写体汉字识别系统
特 征类 。
实验系统采用 V + 60设计 , C +. 硬件 平 台为 赛 扬 24 , . G
mysql字符集选择原则

1 / 2 mysql字符集选择原则 选择 MySQL 数据库字符集的原则取决于您的应用程序需求和数据存储的特定情况。以下是选择 MySQL 字符集的一些建议原则: 1. 了解应用程序需求: 首要原则是了解应用程序的需求。考虑应用程序所支持的语言和字符集,以确保所选字符集能够支持这些需求。不同字符集支持不同的语言和字符。 2. 使用 UTF-8: UTF-8 是一种通用字符集,支持几乎所有的语言和字符。它通常是一个不错的选择,特别是对于多语言应用程序。在现代应用程序中,UTF-8 已经成为一种标准选择。 3. 根据国际化需求选择字符集: 如果您的应用程序主要针对特定地区或语言,可以选择与该地区或语言相关的字符集。例如,对于中文应用程序,可以选择 utf8mb4 字符集,它支持更广泛的中文字符。 4. 考虑性能和存储大小: 不同字符集在性能和存储大小方面有差异。一些字符集可能需要更多的存储空间,而另一些可能更高效。在选择字符集时要权衡性能和存储需求。 5. 保持一致性: 在整个数据库中保持一致的字符集,以避免混淆和问题。不同的表或列可以使用不同的字符集,但最好避免这种情况。 6. 考虑排序和比较规则: 不同字符集具有不同的排序和比较规则。确保所选字符集与您的排序和比较需求一致。 2 / 2
7. 支持特殊字符和表情符号: 如果您的应用程序需要存储特殊字符、表情符号或 emoji,确保所选字符集支持这些字符。utf8mb4 字符集通常用于支持这些情况。 8. 备份和还原考虑: 在选择字符集时,要考虑备份和还原数据的情况。不同字符集可能需要不同的备份和还原策略。 9. 时刻保持可扩展性: 考虑未来的需求,选择一个具有良好可扩展性的字符集,以便应对可能的更广泛的语言和字符要求。 最重要的是,选择字符集时要深思熟虑,根据应用程序的需求和使用情况来做出明智的决策。如果不确定,通常选择 UTF-8 是一个安全的选择,因为它支持广泛的字符和语言。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Web开发中的字符集问题和解决方案完全版很多人在开发网站开始阶段没有注意到字符集统一的重要性,因此开发的网站不是数据库中存有乱码就是web页面显示为乱码。
现以web开发中的字符集为主体讨论在个人和团队web开发中需要注意的问题,和相应的解决方法。
1. 常见问题的解决比如我在网站开发阶段就遇到两个严重的问题:我使用的是Zend studio的开发工具,保存代码时也是默认保存的,没有注意到字符集的问题,开始一切正常,但是当我想在页面中添加‟©‟这个符号的时候,网页不能正常显示。
后来发现,zend 默认的保存编码是gb2321编码,而这个编码中不能表示以上那个字符,要显示那个字符有两种方式,一种是使用php中的图形函数,将copyright字符转换为图形显示在网页上。
第二种方法是将网站格式完全转化为utf-8编码。
我采用的是后者,将全部页面保存为utf-8格式,然后在content-type中将charset=转换为utf-8;第二个严重的问题是数据库的乱码问题。
再将文章存入数据库中后,使用phpmyadmin查看其中数据显示的也全部是乱码,起初没有对这个完全正视起来,因为在php使用其中数据时没有出现异常,在网页中显示正常。
但是这本就是个严重的隐患,因此今天想办法解决了,解决方法使用的是很笨的方法,将数据库中的数据读出来,存入表中,然后写一个安装文件(使用php),再连接数据库后,添加一段代码,效果如下:$conn=new mysqli(hostname,username,passwd,dbname);$conn->query(…set names \‟utf8\‟);这样在将php的安装文件中的数据写入数据库时就不会出现编码不一致的问题。
在phpMyadmin中也能正常显示了。
2.原理介绍(摘自阿强的blog:/10458/viewspace_4782.html)1. CollationsCollations翻成中文是“校验”,在网页开发的过程中,这个词汇,只在Mysql里使用,主要作用是指导Mysql对字符的比较,比如, ASCII字符集里,Collations规定了a小于b,a等于a,以及a是否等于A 之类的。
通常,大家基本可以忽略Collations的存在,因为每个字符集都有一个默认的Collations,通常,使用默认的Collations就可以了。
以字节为编码单元,没有字节序的问题。
UTF-16以两个字节为编码单元,在解释一个UTF-16文本前,首先要弄清楚每个编码单元的字节序。
例如收到一个“奎”的Unicode 编码是594E,“乙”的Unicode编码是4E59。
如果我们收到UTF-16字节流“594E”,那么这是“奎”还是“乙”?2.字符集与这对比的是,字符集是个更广的概念,即使是Windows下普通的文本文件,也渗及到字符集的问题。
不同的字符集,规定了不同的字符的编码方式。
一个 character set (字符集)是一组符号和编码,比如,ASCII 字符集,包括的字符有:数字,大小写字母,分号、换行之类的符号,编码方式是用一个7bit表示一个字符(A的编码是65,b的编码是98)。
ASCII只规定了英文字母的编码,非英文语言不能用ASCII编码表示,为此,不同的国家,都为自己的语言做了编码,比如,我们国家,就有GB2312编码。
但每个国家之间的编码不同,也存在着一些跨平台的问题,为此,一些国际化标准组织,就制定了一些国际通用的编码,最常用的就是UTF8了。
ASCII只对英文符号和英文字母做了编码,GB2312对英文符号,英文字母,汉字做了编码,UTF8对世界上所有的语言文字做了编码,所以,GB1212的字符包含了ASCII字符,UTF8包含了GB2312字符。
由此可见,UTF8是所含最广字符的字符集,所以,在一些多语言的WEB系统中,一般用UTF8字符集(PHPMyAdmin使用UTF8编码)。
任何文本的存储,都渗及到字符集的概念。
包括数据库,也包括普通的文本文件。
主要术语:字符:汉字,英文字母,标点符号,拉丁文等等。
编码:将字符转换成计算机存储的格式,比如,A用65表示字符集:一组字符以及对应的编码方式。
a. Mysql的字符集Mysql目前支持多字符集,并且,支持在不同的字符集之间转换(便于移植和支持多语言)。
Mysql可以设置服务器级字符集、数据库级字符集、数据表级字符集、表列的字符集,实际上,最终使用字符集的地方是存储字符的列,比如,你设置 table1中col1列是字符类型,col1才用到了字符集,如果table1表的col2列是int类型,col2不使用字符集的概念。
服务器级字符集、数据库级字符集、数据表级字符集都是为列的字符集做默认选项的。
Mysql一定有一个字符集,可以通过启动时加参数指定,也可以编译时指定,也可以在配置文件里指定。
Mysql服务器字符集,只是做为数据库级的默认值。
创建数据库时,你可以指定字符集,如果没指定,就使用服务器的字符集。
同理,创建表时,你可以指定表级的字符集,如果没指定,使用数据库的字符集做为表的字符集。
创建列时,你可以指定某列的字符集,如果没指定,就使用表的字符集。
通常情况下,您只需设置服务器级的字符集,其它的数据库级,表级,以及列级的字符集,都继承自服务器级字符集。
由于UTF8是最广的字符集,所以,一般情况下,我们设置Mysql服务器级的字符集为UTF8!b. 普通文本的字符集问题任何文本的存储,都存在着字符集的问题,普通文本文件也不例外。
Windows2000+的系统中,打开记事本,“保存为…”对话框,就有一个选项,可以让你选择存储文本的编码方式。
通常情况下,大家都使用Windows2000+的系统,都使用默认的编码,所以,不会碰到字符集的问题。
Windows下,保存文本文件时,可以选择编码方式,但打开文本文件时,都是自动判断编码方式的。
网上有一个用Windows2000+的记事本玩移动,联通的笑话,大家可以搜搜,就是因为Windows在打开文本文件时,编码判断错误引起的问题。
因为自动判断编码有时会错误,所以,有的文本文件,规定了如何识别自身所使用的编码。
HTML文件就是一个这样的例子。
>HTML是文本文件。
存储HTML文件的时候,需要使用一个编码,并且,在HTML文件里,也使用HTML语法,指定了该文件所使用的编码(比如< meta http-equiv="content-type" content="text/html;charset=UTF-8">)。
如果HTML文件没有指定编码,则浏览器自动识别文件的编码。
如果HTML指定了编码,则浏览器使用HTML指定的编码。
通常情况下,HTML文件指定的charset和HTML文件自身的编码是一致的,但也有不一致的情况,如果不一致,就会导致网页乱码(此处乱码,只和文本文件有关,和数据库无关。
)使用专门的网页编辑工具(比如Dreamwave),会自动根据网页中的charset值来编码文件。
c. php+mysql的字符集问题PHP最终生成的是文本文件,但他要取数据库里的文本,或将文本存进数据库由于Mysql支持多字符集,默认情况下,Mysql不知道PHP发给他的是什么编码的字符,所以,Mysql要求客户端(PHP)告诉他存取的字符集是什么。
PHP通过设置character_set_client,告诉Mysql,PHP存进数据库的是什么编码方式。
PHP通过设置character_set_results,告诉Mysql,PHP需要取什么样编码的数据。
PHP通过设置character_set_connection,告诉Mysql,PHP查询中的文本,使用什么编码。
MYSQL使用设置的编码方式存储文本。
假设Mysql使用setserver来存储文本,PHP的character_set_client是setclient,PHP的character_set_results是setresult。
那么,Mysql将PHP发来的文本,从setclient编码方式,转换成setserver编码方式,再存入数据库,如果PHP取文本,Mysql将文本从setserver转换成setresult,再发送给PHP。
PHP文件(最终生成的HTML文件)本身有个编码,如果Mysql传过来的编码,与PHP文件自身的编码不同,那么,整个网页,必然乱码。
所以,PHP一般将自己的编码方式,告诉Mysql。
要保证不乱码,就必须将三个编码统一:一是网页自身的编码,二是HTML里指定的编码,三是PHP告诉Mysql的编码(包括character_set_client和character_set_results)。
第一和第二个编码,如果使用DW之类的编辑器写的网页,通常是一致的,但用记事本写的网页,有可能不一致。
(这里我感觉不太准确,需要讨论一下)第三个编码,需要手工通知Mysql。
这步可以通过在PHP里使用mysql_query(“set names characterX”)来实现。
d.字符集的转换问题如果小字集转换成大字符集,不会丢失数据,但大字集,转换成小字集,可能会丢失数据。
比如,UTF8里有的字符,GB2312不一定有,所以,从UTF8转换到GB2312可能会丢失一些字符。
但有种情况例外,先从GB2312转成UTF8,再从UTF8转成GB2312,这种情况是不会丢数据的,因为,刚开始转换的文本,都是GB2312里的字符,所以,整个过程都是GB2312的字符在转换,不会丢失。
正因为UTF8能容纳世界上的所有字符,所以,数据库一般使用UTF8编码。
这使得,任何字符都可以存进UTF8编码的数据库。
e. PHPMyAdmin乱码的问题PHPMyAdmin支持多国语言,这就必定要求HTML页面使用UTF8编码。
HTML页面使用UTF8编码,这就必定要求PHPMyAdmin连接Mysql时,character_set_client和character_set_results使用UTF8编码。
当前情况下,PHP连接Mysql只能是使用set names(或其它几个语句)来通知Mysql的编码方式,如果没有显式的声明编码方式,都将使用latin1编码。
一般的程序,都没有显式声明 character_set_client变量,所以,都是将gb2312文本,按latin1编码方式存在数据库,PHPMyAdmin再用utf8格式读取,肯定是乱码的。
如果PHP程序按正确的编码存入数据库,肯定是没有问题的。
所以,需要修改的不是PHPMyAdmin.(虽然有时修改PHPMyAdmin可以解决乱码问题,但这不是问题的根本)补充:(参考:/fmddlmyy/archive/2005/05/04/372148.aspx)UTF-8以字节为编码单元,没有字节序的问题。