问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php页面解决乱码问题

发布网友 发布时间:2022-04-24 17:59

我来回答

5个回答

热心网友 时间:2022-04-06 01:39

1、文件编码:指的是页面文件(.html,.php等)本身是以何种编码来保存的。记事本和Dreamweaver在打开页面时候会自动识别文件编码因而不太会出问题。而ZendStudio却不会自动识别编码,它只会根据首选项的配置固定以某种编码打开文件,如果工作时候一不注意,用错误编码打开文件,做了修改之后一保存,乱码就出现了(我深有体会)。
2、页面申明编码:在HTML代码HEAD里面,可以用<meta http-equiv="Content-Type" content="text/html; charset="XXX" />来告诉浏览器网页采用了什么编码,目前中文网站开发中XXX主要用的是GB2312和UTF-8两种编码。
3、数据库连接编码:指的是进行数据库操作时候以哪种编码与数据库传输数据,这里需要注意的是不要与数据库本身的编码混淆,比如MySQL内部默认是latin1编码,也就是说Mysql是以latin1编码来存储数据,以其他编码传输给Mysql的数据会被转换成latin1编码。
知道了WEB开发中哪些地方涉及到了编码,也就知道了PHP页面乱码产生的原因:上述3项编码设置不一致,由于各种编码绝大部分是兼容ASCII的,所以英文符号不会出现,中文就倒霉了。下面是一些常见的错误情况与解决:
1、数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接SELECT数据出来的就是PHP页面乱码,需要在查询前先使用:
mysql_query("SET NAMES GBK"); 来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:
mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如页面申明的编码与数据库内部编码一致可以不设定连接编码。
注:事实上MYSQL的数据输入输出比上面讲的更复杂一些,MYSQL配置文件my.ini中定义了2个默认编码,分别是[client]里的default-character-set和[mysqld]里的default-character-set来分别设定默认时候客户端连接和数据库内部所采用的编码。我们上面指定的编码其实是MYSQL客户端连接服务器时候的命令行参数character_set_client,来告诉MYSQL服务器接受到的客户端数据是什么编码的,而不是采用默认编码。
2、页面申明编码与文件本身编码不一致,这种情况很少发生,因为如果编码不一致美工做页面时候在浏览器看到的就是乱码了。更多时候是发布以后修改一些小BUG,以错误编码打开页面然后保存导致的。或者是用某些FTP软件直接在线修改文件,比如CuteFTP,由于软件编码配置错误而导致转换错了编码。
3、一些租用虚拟主机的朋友,明明上述3项编码都设置正确了还是有PHP页面乱码。比方说网页是GB2312编码的,IE等浏览器打开却总是识别成UTF-8,网页HEAD里面已经申明是GB2312了,手动修改浏览器编码为GB2312后页面显示正常。产生原因是服务器Apache设定了服务器全局的默认编码,在httpd.conf里面加了AddDefaultCharset UTF-8。这时候服务器会首先发送HTTP头给浏览器,其优先级比页面里申明编码高,自然浏览器就识别错了。解决办法有2个,请管理员在配置文件自己的虚机里加上一条AddDefaultCharset GB2312来覆盖全局配置,或者在自己目录的.htaccess里配置。

热心网友 时间:2022-04-06 02:57

每个PHP页面都要加上页面编码的:header("Content-Type:text/html; charset=utf8"); 后面charset里面的就是你的页面编码所有网页都要统一,记住加在最上面,前面不能有任何的输出。

热心网友 时间:2022-04-06 04:32

你本身的页面编码要和meta里面的编码相同,不然就是乱码。你看一下你的php文件的编码是不是utf-8的
你的add.php页面的编码不是utf-8的,你把页面设为gbk来看看
<meta http-equiv="Content-Type" content="text/html; charset="gbk" />

热心网友 时间:2022-04-06 06:23

首先纯html页要用meta标签声明编码
<meta http-equiv="Content-Type" content="text/html; charset="utf-8" />
有php输出的页要使用header函数声明编码
header("Content-Type:text/html; charset=gb2312");
同时文件也要另存为utf-8格式~~GBK同理

这样编码算统一了 还要注意一点 用POST传递数据 如果网站都是统一UTF8编码的话 传递中文没有问题 否则传递中文时要用urlencode函数进行编码 GET方式传输中文 无论是否为UTF8编码 都需要进行urlencode编码

缓存技术要用到memcache 可以去百度一下 很多资料

热心网友 时间:2022-04-06 08:31

在php的开头
header("Content-Type:text/html; charset=gb2312");
header("Cache-Control:no-cache");试试
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...干或者杀人放火伤天害理的事 是不是 说谎对老天爷来也是不应该的事... 海尔BCD-206TD重要参数 海尔冰箱BCD_196TDXZ如何调温 农业银行密码锁定,但父母不在家怎么办? 奥比岛,号被盗,只记得初始密码,密保手机等密报全被改,充值记录也找不到... 拳皇97ol进阶称号获得方法介绍_拳皇97ol进阶称号获得方法是什么 有什么工作是周六日休息节假日的除了厂,列出来,最好初中毕业也能进_百... 广汉市新生代家庭农场怎么样? 想要考心理咨询师证书,合格证书,技能证书,能力证书等又是啥区别? 海盗船K70 RGB MK.2游戏机械键盘这个人体工程学键盘性价比怎么样?_百 ... 苹果6连接了wifi可是显示不出来怎么回事? PHP页面想要页面自动关闭当前页面(退出)? 吃酒酿煮鸡蛋男人可以经常吃吗 php 中如何实现跳转到一个新的页面 什么是php页面? 听说每天一碗酒酿蛋可以让皮肤变得光华细嫩!还有丰胸的作用是真的吗?可是这东西太上火了!我吃了几天牙 IQOO7为什么不显示,wifi+6 iqoo3连接rax80不显示wifi6? 每天早上吃一碗醪糟鸡蛋牛奶,会发生什么? 酒酿蛋多久吃一次好处多 wifi6的驱动黄色感叹号,各种方法试了还是没用,wifi和热点不显示? 酒酿蛋应该在什么时候吃才有效啊? 为什么手机连接路由器的WiFi后未显示使用的WiFi6? 醪糟鸡蛋可以长期吃吗 win10如何手动 手动 手动安装手柄驱动?,没自动了 每天吃酒酿鸡蛋好不好?? 老版的游戏手柄WIN10怎么装驱动, 天天吃酒酿蛋好不好 中国银行无抵押贷款条件 win10连接ps4手柄问题怎么解决? 为什么小6连上了wifi却没有显示wifi信号 php页面进不去怎么办 怎么用php刷新页面? OLED电视有什么缺点 电视机哪个牌子好?OLED技术成熟吗?OLED比液晶电视有什么显著优点?谢谢! PHP网站怎么修改页面 PHP中怎么刷新页面? 奔驰r320行车记录仪怎么使用 奔驰350行车记录仪怎么打开 OLED 残影问题到底有没有解决? php如何当前页面显示其他网页? 如何将一个php页面的值传给另一个页面 奔驰c200 隐藏行车记录仪怎么用? 20款美规奔驰GLS450 行车记录仪怎么使用? 奔驰s400行车记录仪怎么设置 奔驰Glb行车记录仪怎么显示到车屏幕上 梦见奶奶去世世,但是留了最后一口气咬了我的手然后死了!什么意思呢? 梦见奶奶去世,戴孝去火葬场,出门的时候被狗咬了,这一系列的梦境到底意味着什么呢? 我在梦里梦见了自己已经死去的奶奶,她变成魔鬼来咬我!然后我在梦里发现自己在梦里,就在梦里想我一定要 昨晚做梦了梦到狼把我已经去世的奶奶在小腿上咬了一口。