|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rloginrcp、finger、mail、nslookup
比来常常有同砚在利用LAMP/WAMP时,碰到如许的编码毛病成绩:
A网站程序编码UTF-8编码安装乐成,运转乐成。
B网站程序编gb2312也要安装在统一服务器上。
如许就呈现成绩了,Apache默许编码UTF-8在剖析A网站的时分没有任何成绩,当运转B网站时呈现的"蝌蚪文"乱码成绩。
纯真的修正Apache默许编码为gb2312如许就招致A网站呈现"蝌蚪文"。
成绩剖析:
假如你在网上搜刮“apache设置”,搜到的页面年夜多城市倡议你在httpd.conf中加上这么一句:AddDefaultCharsetGB2312。
关于老手并且是只用GB2312编码的开辟人来讲,这么做是ok的。可是假如要想利用UTF-8字符集的话,好比在test.php文件中必要有metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"这段代码。
这时候你再翻开扫瞄器会见test.php页面的话,你看到的是准确的页面。可是假如实践上扫瞄器仍是以GB2312编码注释从服务器前往的response,为何呢?缘故原由是扫瞄器是依据http应对动静头部中的Content-type:text/html;charset=GB2312来决意利用何种编码注释应对,也就是说apache服务器仍旧用GB2312编码传送数据。
以是说假如apache的默许字符集被设置成了GB2312,即便在页面中声明利用UTF-8编码,apache服务器仍是会依照GB2312编码来传送httpresponse。不妨,我们把AddDefaultCharsetGB2312改成AddDefaultCharsetUTF-8,看看甚么了局?
假如你看到乱码祝贺你,你还晓得是乱码成绩;假如你看到是空缺页面,那末你就惨了,你大概会觉得这是其他甚么缘故原由酿成的,而不会从编码的角度往思索怎样办理成绩。这是为何?缘故原由在于php文件自己是用体系字符集来编码的,中文的windowsXP都是用GB2312,每个文件头部都有字段唆使该文件是用何种体例编码的。当apache接到扫瞄器的哀求后,会让php往注释所哀求的页面,好比test.php。php会辨认出test.php的编码体例是GB2312后(就像我们用javac编译java源文件时,编译器默许用体系编码读源文件里的内容。
假如源文件不是用体系编码来保留的,能够用命令javac-encoding指定详细的编码),把数据以GB2312的编码格局传送给apache,而apache服务器不会改动从php传来的数据,只是在应对动静头部中把字符集设置成UTF-8:Content-type:text/html;charset=UTF-8.也就是说你传送的是GB2312编码的数据,而扫瞄器却以UTF-8编码来注释应对动静。
因为UTF-8为3个字节暗示一个男人,而一般的GB2312或BIG5是两个。页面输入时,因为上述缘故原由,呈现半个汉字的情形,这时候该半个汉字会和的>分离成一个乱码字,招致IE没法读完的话,会发明实践上全部叶面全体已输入了。假如利用的是Mozilla、MozillaFirefox、Sarafi的扫瞄器这不会形成这个成绩,而是一堆乱码。这是因为Firefox扫瞄器和IE剖析网页编码的战略分歧发生的。OK,我们把test.php以UTF-8保留,再用扫瞄器会见时,就没有成绩了。
可如许做,会使得apache目次下的一切web使用只能用统一种编码。怎样弄定?
办理举措:
起首,可使用AddDefaultCharsetoff来封闭默许文件编码,如许apache服务器就不会在http应对动静头部设置charset,只是设置Content-type:text/html.而扫瞄器就会依托html文件中设置的harset来决意编码。
其次,剧本php.ini文件中的default_charset=“UTF-8″感化同httpd.conf文件,把该行正文失落,使php主动辨认文件的编码体例。
如许不管你用甚么编码体例,只需test.php中的metahttp-equiv=”Content-Type”content=”text/html;charset=UTF-8″与你test.php文件编码体例不异,就不会发生乱码成绩。用户提交数据的编码扫瞄器提交的字符编码由客户真个characherencoding决意。
比方,以后扫瞄器的编码是Gb2312,用户提交数据后,不管apache设置的编码体例是GB2312仍是UTF-8,这时候在服务器端吸收到的还是以Gb2312编码的数据。
假如要在前往页面上显现用户方才提交的数据,而该页面是用UTF-8编码的大概要在数据库中存储的用户提交的数据,而数据库是UTF-8编码的,那就要做字符转换了。
安装和登录命令:login、shutdown、halt、reboot、mount、umount、chsh |
|