Windows10系统之家 - 安全纯净无插件系统之家win10专业版下载安装
时间:2024-12-27 21:02:37 来源:Windows10之家 作者:admin
基本上现在的字符集 MySQL 都支持,查看 MySQL 支持的字符集列表, 有两种方法:
1. SQL 语句2. 查看元数据字典表查询结果:
1)第一列代表字符集名字;
2)第二列表示字符集排序规则;
3)第三列表示字符集描述;
4)第四列表示字符集编码的最大字节数。
在Windows平台下查看和修改字符集一、查看字符集:chcp二、修改字符集为936 :chcp 936可以得到操作系统的代码页信息,你可以从控制面板的语言选项中,可以查看代码页对应的详细的字符集信息。linux下查看和修改字符集一、查看服务器字符集1、查看当前服务器字符集2、查看服务器支持的字符集二、修改/etc/sysconfig/i18n 文件,设置字符集类似以下内容#LANG="en_US.UTF-8" #SYSFONT="latarcyrheb-sun16" SYSFONT="lat0-sun16"三、让设置的字符集生效#source /etc/sysconfig/i18n另也可在 /etc/profile (全局) 或者 ~/.bashrc (单个用户)设置 Linux 系统的环境变量。
如果用户想改变表的默认字符集和所有的字符列的字符集到一个新的字符集,使用下面的语句: ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;警告:上述操作是在字符集中转换列值。如果用户在字符集(如 gb2312)中有一个列,但存储的值使用的是其它的一些不兼容的字符集(如 utf8),那么该操作将不会得到用户期望的结果。在这种情况下,用户必须对每一列做如下操作: ALTER TABLE t1 CHANGE c1 c1 BLOB; ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8; 这样做的原因是:从 BLOB 列转换或转换到 BLOB 列没有转换发生。 如果用户指定以二进制进行 CONVERT TO CHARACTER SET,则 CHAR、VARCHAR 和 TEXT 列将转换为它们对应的二进制字符串类型(BINARY,VARBINARY,BLOB)。这意味着这些列将不再有字符集,随后的 CONVERT TO 操作也将不会作用到它们上。 如果仅仅改变一个表的缺省字符集,可使用下面的语句: ALTER TABLE tbl_name DEFAULT CHARACTER SET charset_name; DEFAULT是可选的。当向一个表里添加一个新的列时,如果没有指定字符集,则就采用缺省的字符集(例如当ALTER TABLE ... ADD column)。 ALTER TABLE ... DEFAULT CHARACTER SET 和 ALTER TABLE ... CHARACTER SET 是等价的,修改的仅仅是缺省的表字符集。
由于mysql默认的字符集编码为latin ,而我们一般使用的是gbk 或者 gb2312编码所以不改过来容易造成乱码我用的是mysql 5.0 安装程序安装的 ,安装目录在C:\Program Files\MySQL\MySQL Server 5.0请到这个目录下面找到 my。ini文件修改default-character-set=latin1 为 default-character-set=gbk记住有两个地方啊 都要改最重要的一点就是修改文件前,先停止mysql服务 ,等修改后再重新启动使用dos命令 :net stop mysql 来停止服务 net start mysql 来启动然后在执行你的mysql脚本 ,一切ok! 这里你可以用discuz的sql做为例子运行!
使用这条命令mysql_query("SET NAMES 'utf8'");把utf8 换成你需要的编码,然后把数据库的字符集也设定一样的
可以通过进入工具栏点击我的字库,然后进入自定义修改。
但是遗憾的是,很多人编译安装MySQL的时候没有指定这两个参数,大多数人更是通过二进制程序的方式安装,那么这时候MySQL的默认字符集是latin1。而这时候我们仍然可以指定MySQL的默认字符集,通过my.cnf文件增加两个参数:1.在[mysqld]下添加 default-character-set=utf8(mysql5.5版本添加character-set-server=utf8)2.在[client]下添加 default-character-set=utf8这样我们建数据库建表的时候就不用特别指定utf8的字符集了。配置文件里的这种写法解决了数据存储和比较的问题,但是对客户端的连接是没有作用的,客户端这时候一般需要指定utf8方式连接才能避免乱码。也就是传说总的setnames命令。事实上,setnamesutf8命令对应的是服务器端以下几个命令: SETcharacter_set_client=utf8; SETcharacter_set_results=utf8;
1、更改服务器的编码方式,在终端输入以下命令:mysqld--character-set-server=gbk--collation-server=gbk_chinese_ci;
2、更改某个数据库的编码方式mysql-uroot-p alterdatabasecharactersetgbkcollategbk_chinese_ci;
3、在创建数据库时指定编码:mysql-uroot-p createdatabasedb_namecharactersetgbkcollategbk_chinese_ci;
4、更改某个表的编码方式mysql-uroot-pdb_namealtertabletable_nameconvertto charachtersetgbkcollategbk_chinese_ci;
5、在创建表时指定编码方式mysql-uroot-pdb_namecreatetabletable_name(....)charactersetgbkcollategbk_chinese_ci;
6、更改某行的编码方式mysql-uroot-pdb_namealtertabletable_namemodifycolumn_namevarchar(20)charactersetgbkcollategbk_chinese_ci;
7、在创建列时指定编码方式:</pre><prename="code">mysql-uroot-pdb_namecreatetabletable_name(...,col1varchar(20)charactersetgbkcollategbk_chinese_ci,...)charactersetutf8collateutf8_general_ci;
以DBA身份进入SQLPLUSSQLsqlplussys/sysassysdba;……SQLshutdownimmediate;SQLstartupmount;SQLaltersystemenablerestrictedsession;SQLaltersystemsetjob_queue_processes=0;SQLaltersystemsetaq_tm_processes=0;SQLalterdatabaseopen;SQLalterdatabasecharactersetinternal_useAL32UTF8;(ZHS16GBK)SQLshutdownimmediate;SQLstartup;这样就可以讲ORACLE的字符集修改为UTF8,如果需要修改为GBK只需将alterdatabasecharactersetinternal_useAL32UTF8;(ZHS16GBK)这句最后的AL32UTF8修改为ZHS16GBK即可
1、查询Oracle server端的字符集。打开PLSQL的查询窗口中输入下面SQL查询语句。
select userenv('language') from dual;
得到的服务器字符集为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
2、我的电脑中环境变量界面,在系统变量中新加:
变量名:NLS_LANG
变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
变量值跟服务器查询到的值一致即可。
相关文章
热门教程
热门系统下载
热门资讯