Mysql数据库编码难题 (修改数据库,表,字段编

作者:ca88

一经是linux系统,则只须要把上边的gb2312改成UTF8就能够。

因为utf8字符集是当下最适合于贯彻七种分裂字符集之间的转移的字符集,就算你在命令行工具上或者不能正确查看数据库中的内容,我还是刚强建议使用utf8作为暗中认可字符集
接下去是总体的叁个例证:
1.创设数据库表
mysql>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;
#瞩近日面那句话 "COLLATE utf8_general_ci",大约意思是在排序时依照utf8校验集来排序
#那么在这么些数据库下开创的具备数据表的暗中认可字符集都会是utf8了

<?php
mysql_connect('localhost','user','password');
mysql_select_db('my_db');
//请小心,那步很器重,如果未有那步,全部的多寡读写都会不准确的
//它的职能是安装这一次数据库联网进程中,数据传输的暗中认可字符集
//别的编制程序语言/接口也接近,譬喻 .net/c#/odbc
//jdbc则设置连接字符串为左近"jdbc:mysql://localhost/db?user=user&password=123456&useUnicode=true&characterEncoding=UTF-8"
mysql_query("set names utf8;");
//必需将gb2312(本地编码)转变到utf-8,也能够使用iconv()函数
mysql_query(mb_convet_encoding("insert into my_table values('测试');", "utf-8", "gb2312"));
?>

诸如此比设置mysql时缺省字符集选为utf8后又推动多个难题,大家在command.exe中跻身mysql调控台后,查询结果又成了乱码,大家能够在询问前输入

复制代码 代码如下:
CREATE TABLE TEST
{
 ...
 ...
 ...
}default character set gb2312;

附2:支持查看utf8字符集的MySQL顾客端有
1.) MySQL-Front,听他们讲那几个类型已经被MySQL AB勒令甘休了,不知何故,假设国内还会有相当多破解版能够下载(不代表本人推荐应用破解版 :-P)。
2.) Navicat,另一款特别不利的MySQL客商端,汉化版刚出来,还约请本人试用过,总的来讲依然不错的,可是也急需付费。
3.) PhpMyAdmin,开源的php项目,非常好。
4.) Linux下的终端工具(Linux terminal),把终端的字符集设置为utf8,连接受MySQL之后,奉行 SET NAMES UTF8; 也能读写utf8数据了。

因为utf8字符集是当前最适合于贯彻各种分化字符集之间的转变的字符集,固然你在命令行工具上可能无法准确查看数据库中的内容,小编还是猛烈建议使用utf8作为暗许字符集
接下去是完好的叁个例证:
1.创立数据库表
mysql>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;
#注意前面那句话 "COLLATE utf8_general_ci",大致意思是在排序时依据utf8校验集来排序
#那么在那些数据库下开创的具有数据表的暗许字符集都会是utf8了

$link = mysql_connect('localhost', 'root', 'root');
mysql_query("SET NAMES 'utf8'",$link);

然后在hibernate.cfg.xml中加上:

<?php
//输出本页编码为utf-8
header("content-type:text/html; charset=utf-8");

mysql_connect('localhost','user','password');
ca88,mysql_select_db('my_db');

mysql>set names 'gb2312';

复制代码 代码如下:
<property name="connection.characterEncoding">gb2312</property>

复制代码 代码如下:

$q = mysql_query("select * from my_table");
while($r = mysql_fetch_row($q))
{
print_r($r);
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<form action="" method="post">
<input type="text" name="name" value="">
<input type="submit" value='submit'>
</form>

mysql>set names 'gbk';

假假设windows系统,那么系统暗许的地头字符集是gb2312,为了让数据表也选取gb2312字符集,大家要这样编写创造数据表的SQL语句:

mysql_connect('localhost','user','password');
mysql_select_db('my_db');

您只怕感兴趣的小说:

  • 使MySQL可以存款和储蓄emoji表情字符的安装教程
  • MySQL插入emoji表情战败难题的缓和措施
  • 让Java后台MySQL数据库能够帮忙emoji表情的点子
  • MySQL不大概存款和储蓄Emoji表情难题的消除方法深入分析
  • 一应俱全摸底mysql中utf8和utf8mb4的界别
  • MySQL查看与修改当前数据库编码的方法
  • 修改MySQL数据库中表和表中字段的编码方式的点子
  • MySQL查看和修改字符编码的落实方式
  • mysql存储emoji表情报错的管理办法【改造编码为utf8mb4】

消除这么些主题素材其实很轻易.

复制代码...

事后,使用utf8字符集的完好的例子结束了.
假使您想利用gb2312编码,那么提议你利用latin1作为数据表的默许字符集,这样就能够平昔用粤语在命令行工具中插入数据,并且能够直接展现出来.而不要选择gb2312可能gbk等字符集,如若忧郁查询排序等主题材料,能够动用binary属性约束,举例:
create table my_table ( name varchar(20) binary not null default '')type=myisam default charset latin1;

复制代码 代码如下:

上边列出的值正是系统的默许值。(很意外系统怎么暗许是latin1的乌克兰语排序情势)...
当大家依照原先的诀窍经过PHP存取MySQL数据库时,固然设置了表的暗中认可字符集为utf8而且经过UTF-8编码发送查询,你会发觉存入数据库的照旧是乱码。难题就出在那个connection连接层上。化解情势是在发送查询前举办一下上面这句:
set names 'utf8';
它一定于上面包车型大巴四句发号施令:

...

<?php
//输出本页编码为utf-8
header("content-type:text/html; charset=utf-8");

从MySQL 4.1方始引进多语言的支撑,并且有的特征已经超(Jing Chao)越了其余的数据库系统。
MySQL4.1的字符集帮助(Character Set Support)有多个地点:字符集(Characterset)和排序方式(Collation)。对于字符集的支撑细化到多个档案的次序:服务器 (server),数据库(database),数据表(table)和连接(connection)。
查看系统的字符集和排序情势的设定能够透过上边包车型大巴两条命令:!

本文由ca88发布,转载请注明来源

关键词: ca88网址 ca88亚洲平台 ca88官网