有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 832|回复: 8
收起左侧

[php] 提问,求回答,有关于Mysql数据库乱码的问题

[复制链接]

该用户从未签到

2

主题

7

好友

1309

积分

Continue

积分
1309
发表于 2013-5-1 11:20:48 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
[mw_shl_code=php,true]<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("chat", $con);
$result = mysql_query("SELECT * FROM chat");
while($row = mysql_fetch_array($result))
  {
  echo $row['time'] . " " . $row['neirong'];
  echo "<br />";
  }
mysql_close($con);
?>[/mw_shl_code]

输出数据数字和英文没问题,可是中文是???


                               
登录/注册后可看大图
该贴已经同步到 yangkeao的微博
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复

使用道具 举报

该用户从未签到

3

主题

37

好友

1万

积分

第一章

积分
11825
发表于 2013-5-1 12:06:39 | 显示全部楼层
php可以用iconv转码,使用phpinfo()可以看到当前php的编码。
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

7

好友

1309

积分

Continue

积分
1309
 楼主| 发表于 2013-5-1 12:56:16 | 显示全部楼层
jimsshom 发表于 2013-5-1 12:06
php可以用iconv转码,使用phpinfo()可以看到当前php的编码。

具体一点,谢谢。。本人菜鸟。。
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

37

好友

1万

积分

第一章

积分
11825
发表于 2013-5-1 16:15:58 | 显示全部楼层
之所以中文会有问题是因为mysql的编码和php的编码不一致导致的,简单来说就是对于同一些二进制字节,GBK编码和UTF-8编码对于这些字节的结束都是不同的。具体编码相关的问题可以google下。
你这边要解决这个问题,有两种方案,一种是让php的编码设置和mysql一致,另一个是php从mysql读出内容后转换成php的编码。一般来说为了程序的通用性,建议采用第二种。
这里假设mysql编码为GBK,php编码为UTF-8,则需要将读出的内容由GBK转换成UTF-8。
php的编码转换一般也有两种方法,这里推荐使用iconv的库。
函数原型是:string iconv ( string $in_charset , string $out_charset , string $str )
可以详细看下函数的手册还有一些网上其他的例子

评分

参与人数 1宅币 +5 收起 理由
Mr_Alex + 5 o(* ̄▽ ̄*)ブ 发糖

查看全部评分

签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

81

主题

92

好友

2万

积分

第一章

去哪里找比我更懒得

积分
28955
发表于 2013-5-3 12:51:44 | 显示全部楼层
一般都会先指定使用的字符集的,只有数据库及字段的字符集和网页所用的字符集一样的时候才能正常显示
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

13

好友

7218

积分

懒人

积分
7218
发表于 2013-5-16 09:28:25 | 显示全部楼层
MySQL那边可以:
[mw_shl_code=sql,true]SET NAMES 'UTF8'
SET CHARACTER SET UTF8[/mw_shl_code]
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

9

好友

1202

积分

Continue

积分
1202
发表于 2013-5-26 20:39:53 | 显示全部楼层
修改mysql配置文件my.ini或my.cnf,mysql最好用utf8编码

[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-storage-engine=MyISAM
在[mysqld]下加入:
default-collation=utf8_bin
init_connect='SET NAMES utf8'
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

10

好友

1872

积分

Continue

积分
1872
发表于 2014-3-7 10:30:12 | 显示全部楼层
这个,完全不知道。!
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

签到天数: 9 天

连续签到: 1 天

[LV.3]偶尔看看II

2

主题

19

好友

4793

积分

序章

积分
4793
发表于 2014-3-27 09:56:21 | 显示全部楼层
跟8楼说的一样,加上那句就可以了,但是编码的话要对应mysql数据库里面设置的一样,数据库要设置,表要设置,表列也要设置编码,mysql就这个地方神烦了
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(基宅) ( 粤ICP备18082987号-1 | 浙公网安备 33010902001746号 )

GMT+8, 2024-5-8 03:54 , Processed in 0.287015 second(s), 26 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表