phpmysql插入乱码
① 使用php向MYsql数据库插入中文时,页面中文显示正常,但是用navicat查看数据里面就是乱码。。。
这种情我遇到过,以前也是这样的;后台数据库的编码为GB2312,但前台显示和后台显都采用了UTF8,所以你在后台看到数据是乱码,但通过你的程序显示是正常的唤烂。
解决方案,
1.把你的表内容,写只程序导出为TXT文字,
2.住还是UTF导出后保存在文本格式,
3.注意分隔符等,
4.接下来新建一个数据库为UTF8的编码,
5.用Navicat Premium软件导进数悄链闹据进数据库,保持表名,字段结构等都不变。
6.接正就直接连接新的数据库显示就为正常的UTF8数据了,直接用软件打开也不会出现乱码,
虽然方法有点复杂,但这是解闪的根本方法!其实第二种:利用PHP的转码直接转码,这种方启罩法危险性较高也不全面,请谨慎考虑!
② php插入数据到mysql表里面中文是乱码,显示到页面的时候中文又是正常。怎样能在数据表里面中文显示也是正
你是用 phpmyadmin 看的数据吗?
如果是这样显示陆培乱码的话, 那就是你 数据库本身的编码和 你PHP页面的编码 不相同照成的。
你在PHPmyadmin里 看数据表结构的时候 就能扰拿看到编码。
如果你的页面使用了 gb2312的话 数据库编码早李唯就选择 gb2312_chinese_ci
如果是 gbk的话 就选择 gbk_chinese_ci
utf-8的话 选择 utf8_general_ci
③ 请教大侠,php存入mysql数据库时汉字乱码怎么解决,文档和数据库都是utf8格式。
乱码有几个方面吵轿山
首先确保数据库的编码是否正确
其次确保连接数据库的代码帆派是否指定了正确的编码。
另外就是html页面的编码是否一致,麻烦把升中问题补充清楚方便排查问题。
④ php输入中文插入mysql后显示乱码,怎么解决
是你的编码格式出现了问题,程序中的编码格式和数据库的编码格式不一致导致的,都设置成utf-8
⑤ PHP与mysql连接后显示中文乱码
我想知道一件事情。
你能不能把乱码的情况发出图片呢
你看看数据表是不是乱码。
我挺想知道的
这样我好判断问题啊
如果你的乱码是这样
那么你的动态代码就这么写:
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<!--声明头文件,嘿嘿header管不到这里啊。所以你得自己声明了,字符集为utf8-->
<?php
header("Content-Type:text/html;charset:utf-8");
$link=mysql_connect("127.0.0.1","root","");
mysql_select_db("s",$link);
mysql_query("SETNAMESUTF8");
$sql="SELECT*FROMs";
$result=mysql_query($sql);
//print_r($row=mysql_fetch_array($result));
while($row=mysql_fetch_array($result))
{
echo"<tableborder='1'>";
echo"<tr><td>序号</td><td>学号</td><td>姓名</td><td>班级</td></tr>";
echo"<tr><td>".$row['id']."</td><td>".$row['xh']."</td><td>".$row['xm']."</td><td>".$row['bj']."</td></tr>";
echo"</table>";
}
?>
如果不行继续追问就行了
记得贴出图片啊。
⑥ PHP显示MySQL数据乱码,字符集设置都是UTF8,数据库也是UTF8,一直找不到问题在哪里,代码见详细,求大神
php+mysql的utf-8中文乱码问题的解决方法
问题汇总:
1.mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码.
2.MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
3.MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
4.用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码.
5.如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码.
6.PHP页面字符集不正确.
7.PHP连接MYSQL数据库语句指定的编码不正确.
使用mysql+php产生乱码的原因都了解得很清楚了,那么解决就不困难了.
针对不同问题的解决方法:
1.mysql数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MYSQL乱码.
修改数据库编码,如果是数据库编码不正确,可以在phpmyadmin 执行如下命令:
Alter DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将test数据库的编码设为utf8.
2.MYSQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
修改表的编码:
Alter TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将一个表category的编码改为utf8.
3.MYSQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MYSQL乱码.
修改字段的编码:
Alter TABLE 'test' CHANGE 'dd' 'dd' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
以上命令就是将test表中 dd的字段编码改为utf8.
4.用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码.
如果是这种情况容易解决,只需检查下页面,修改源文件的charset即可.
5.如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码.
这种情况也是修改页面charset即可.
6.PHP页面字符集不正确.
为了避免PHP页面乱码的发生,PHP页面开始第一句
header("content-type:text/html; charset=utf-8");
//强行指定页面的编码,以避免乱码
7.PHP连接MYSQL数据库语句指定的编码不正确.
在连接数据库的语句中.
mysql_connect('localhost','user','password');
mysql_select_db('my_db');
mysql_query("set names 'utf8'"); //select 数据库之后加多这一句
⑦ PHP插入mysql数据库乱码
乱码主要以下几个原因:
1。数据表中,表本身的编码 和 字段编码,均为UTF8。
2。在写入数据等数据库操作前,发送语句 'set names utf8'
3。PHP文件都是UTF8编码,无签名(无BOM)
4。页面上使用header或<meta>保证输出的页面是UTF8编码。<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
www.itcyly.com
鲜少老师
⑧ PHP使用utf8插入中文数据到MySQL中文显示会乱码怎么办
数据库使用utf8编码,需要在操作的过程中统一全部编码。
1.数据库默认编码
CREATEDATABASE`test`DEFAULTCHARACTERSET'utf8';
2.表默认编码
CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)NULL,
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
3.字段默认编码
默认情况下,字段的编码同表的编码,但是如果修改了表的编码,字段编码不会同步修改,需要手动修改
这里修改编码测试我将utf8 改为 gb2312 ,仅用于观察修改后的情况(实际使用中可能是将gbk修改为utf8)
ALTERTABLE`test`.`tablea`CHARACTERSET=gb2312;
--修改表编码后,查看建表语句
showcreatetable`tablea`;
--可以看到输出的建表语句中字段单独设置了编码
CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)CHARACTERSETutf8NULL,
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
--需要手动修改字段编码
ALTERTABLE`tablea`
CHANGECOLUMN`title``title`VARCHAR(100)CHARACTERSET'gb2312'NULLDEFAULTNULL;
4.当前数据库连接的编码
连接数时设置编码
//PDO连接
$db=newPDO('mysql:host=myhost;dbname=test','login','password',
array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SETNAMES'UTF8'')
);
//mysqli连接
$link=mysqli_connect("127.0.0.1","my_user","my_password","test");
mysqli_query($link,"SETNAMES'utf8';");
通过以上几步操作,基本可以保证数据库使用过程中不会出现乱码
⑨ php连mysql用 utf-8编码乱码怎么办
1.修改my.ini:[mysql]default-character-set=utf8[mysqld]default-character-set=utf8default-storage-engine=MyISAM在[mysqld]下加入:default-collation=utf8_bininit_connect='SET
NAMES
utf8'
2.在需要做数据库操作的php程序前面加上mb_internal_encoding('utf-8');
3.create
table最后边加上ENGINE=MyISAM
DEFAULT
CHARSET=utf8
COLLATE=utf8_bin
4.phpMyAdmin/config.inc.php
$cfg['DefaultCharset']
=
'utf-8';$cfg['RecodingEngine']
=
'iconv';
5.phpMyAdmin/libraries/string.lib.php将第41行的mb_internal_encoding($GLOBALS['charset']);改为:mb_internal_encoding('utf-8');
6.phpAdmin导出数据时把"二进制区域使用十六进制显示"的勾去掉
⑩ php显示中文乱码,phpmyadmin里的MySQL数据库中文乱码,如何解决
将浏览器中的编码改成utf-8,数据库中也是。在php页面首行加上header("Content-type:
text/html;
charset=utf-8");,必须首行,前面不能有输出。
还有,在查询数据库时加上:mysql_query(set
names
utf-8);