很多站长朋友们都不太清楚php常量乱码,今天小编就来给大家整理php常量乱码,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php页面解决乱码问题 2、 关于运行php项目出现乱码的问题 3、 php中字符串变量乱码问题 4、 运行PHP网站始终显示出的是乱码? 5、 php数据库显示乱码~~~怎么办~~~ 6、 php文件打开乱码 php页面解决乱码问题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里配置。
关于运行php项目出现乱码的问题首先明确一点,这不是乱码,而是出错信息
你一定是改了php.ini里的display_errors为On
这样就打开了错误输出
本来你的程序是有错误的,但是关闭了错误输出,你看不到
现在有错误输出了
看你的错误提示是链接数据库失败
最后一张图片还有其他的错误
你应该把error_reporting改为E_ALL ~E_NOTICE这样就不会有NOTICE级的警告
php中字符串变量乱码问题在做php类型的web程序时,文件乱码都是由编码问题造成的 影响这个因素有四个地方:
1. 文件本身的编码 我们在用记事本或者editplus dw utraledit一类的工具保存文件的时候可以选择的 记事本默认是ansi 另外还有utf8一类的选项
2. html文件的编码 就是页面上 meta charset=“gb2312” 这样的
3.数据库的编码 就是在建立数据库的时候选择的 如果是中文的你可以选择 gb2312 或者是 gbk
4.程序和数据库连接时候的编码 就是你说的 “set names gb2312实现的功能”
只要这四个方面都正确协调 就不会出现任何问题 当然有时候我们的一些设置可能有问题 但是也不影响程序的运行 比如数据库方面 错着进去 错着出来【换句话说怎么进去怎么出来 虽然在里面的时候不对 但是出来还是对的】 程序也能正常跑起来 但是从严格上讲 这是不合适的
根据上面的分析 你的描述 我想可能是你的文件类型 保存成了utf 或者 unicode类型的
运行PHP网站始终显示出的是乱码?有两种情况,
1.如果是用记事本打开php文件乱码,
说明php文件加密了一定是用的zend加密
加密方法你也会,用 zend safe guard3 可以轻松实现加密
这个不影响你运行php程序
目前没有好的解密方法,
2.用ie看是乱码
解决办法:1。查看->编码->gb2312(快键alt+v+d)
如果还不行就换用big5或utf8试试,再换
还不行就没办法了,
2。找到正解编码后在php文件最上面加
<?
header("Content-Type:text/html; charset=gb2312"); //gb2312换成你找到的编码
echo "<meta http-equiv='Content-Type' content='text/html; charset=gb2312' /> ";
//同样把gb2312换成你找到的编码,如utf-8 要写的一模一样才行
?>
php数据库显示乱码~~~怎么办~~~这个可能是你在安装环境的时候出现了问题,在安装mysql的时候,数据库默认的不是gb2312,是西欧字符,建议你重新安装数据库,或是使用wampsever集成安装环境,默认数据库是utf8的,只要你建的数据库整理为utf8
网页文件也保存为utf8的
(不要bom头的那种)以后写php就很少出现问题啦。要是在php文件的最上面一行再加上这么一句代码,<?php
header("Content-Type:text/html;
charset=utf-8");?>,那出现问题的几率就更小了。
php文件打开乱码PHP文件打开乱码,大致原因有以下两点:
文件编码与编辑器默认编码不一致,会导致乱码;建议修改文件编码格式即可:
文件被加密,也会导致文件乱码;需要解密才能查看源码。
关于php常量乱码的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php常量乱码 phpstorm乱码的详细内容...