当前位置:首页 » 编程语言 » phpmysql中文乱码

phpmysql中文乱码

发布时间: 2022-09-09 01:06:41

A. php显示中文乱码,phpmyadmin里的Mysql数据库中文乱码,如何解决

将浏览器中的编码改成utf-8,数据库中也是。在php页面首行加上header("Content-type:
text/html;
charset=utf-8");,必须首行,前面不能有输出。
还有,在查询数据库时加上:mysql_query(set
names
utf-8);

B. 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 数据库之后加多这一句

C. 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';");

通过以上几步操作,基本可以保证数据库使用过程中不会出现乱码

D. php读取mysql数据库的内容后显示为乱码,中文变成问号怎么办

换成UTF8肯定不行,因为是问号,肯定不是三字节到两字节
的问题,而是和拉丁1有关,因为问号是不可能转换的意思
,失败了,
解决:你需要
按数据流入的程序再配置好,再原路返回,,再换重新建库,导入
,,OK
顺便说一下,出的分太少了

E. php输出mysql中文乱码问题

mysqli_query($dbc, "SET NAMES UTF8");

你用mysqli链接的数据库,所以必须用对应函数执行,而且编码设置应该紧跟你建立链接下面。

php5以后开始支持面向对象了,还用面向过程的写法,以后升级很麻烦,这个是建议

F. php读取mysql中文数据出现乱码的解决方法

1.PHP页面语言本身的编码类型不合适,这时候,你直接在脚本中写的中文肯定是乱码,不用说数据库了
解决方法:选择'UTF8'或者'gb2312',这样客户浏览器会自动选择并出现正确的中文显示。注意:'UTF8'或者'gb2312'都可以正确显示中文的。
2.数据库MySQL中的编码类型不正确。
解决方法:创建数据库的时候,MySQL
字符集选择'UTF8',MySQL
连接校对选择utf8_general_ci,这样创建的数据库用来存储中文肯定没有问题,
否则,你的中文首先在MySQL中就是乱码,更不要期望它会给你在PHP页面中显示正确。
3.与平时的脚本编辑环境有关。比如,有些内容是自己用word写的,有些是用记事本写的,有些用editplus、ultraplus等文本编辑器。有时候就直接在DW中写中文了,
解决方法:尽量用同一种编辑器。如果是拷贝来得既有的内容,建议用ultraplus中的编码转换功能把它转换成utf8或者gb2312。
到底转换成什么类型并不重要,关键要求你的PHP
WEB应用程序中的编码要一致就行。
4.编程访问
MySQL时,建议添加一行代码:mysql_query("SET
NAMES
'GBK'");

G. PHP插入MYSQL数据库中文变成乱码 问号

去MYSQL里面设置,不要在PHP里设置MYSQL的编码,乱码肯定就是编码问题无疑,推荐你先把MYSQL里面表的编码改好,然后再把PHP的编码改好,这样就应该没问题了。

H. 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>";

}

?>

如果不行继续追问就行了

记得贴出图片啊。

I. phpmysql生成json中文乱码

你好,这是json对中文处理后的编码,不属于乱码,如果不想它编码可以在json_encode的第二个参数加
JSON_UNESCAPED_UNICODE

json_encode($var,JSON_UNESCAPED_UNICODE);

热点内容
存储卡交流 发布:2025-01-13 07:16:06 浏览:982
php字符串浮点数 发布:2025-01-13 07:15:28 浏览:997
python排序cmp 发布:2025-01-13 07:09:04 浏览:71
云脚本精灵 发布:2025-01-13 07:03:27 浏览:617
高维访问 发布:2025-01-13 07:03:23 浏览:974
保卫萝卜有脚本吗 发布:2025-01-13 06:30:29 浏览:741
天猫上传 发布:2025-01-13 06:06:35 浏览:156
php处理并发 发布:2025-01-13 06:03:44 浏览:282
安卓传文件的软件哪个最好 发布:2025-01-13 06:03:07 浏览:885
电脑服务器可以做吗 发布:2025-01-13 05:59:49 浏览:846