IT学习者 | 文章大全 | 技术文档 | 桌面壁纸 | 实用查询 | 网络电台 | 成语 | 歇后语 | 网址 | 下载 | 周公解梦 | 生日密码 | 电视剧365 | Flash
 您现在的位置: IT学习者 >> 文章大全 >> 网页制作 >> 服务器

解决web服务器各种应用的乱码问题

【 作者:wingger    来源:ChinaUnix  更新时间:2007-1-22 | 字体:

乱码问题:

(1)服务器端: 
修改httpd.conf (在Redhat中放置的位置为/etc/httpd/conf/) 
查找: 
AddDefaultCharset ISO-8859-1 
改成: 

#AddDefaultCharset ISO-8859-1 

AddDefaultCharset off 

这种方式关掉了服务器的默认语言的发送,这样仅凭html文件头中设置的语言来决定网页语言。 

很多文章都说通过修改为 AddDefaultCharset GB2312 把缺省语言改成GB2312来解决中文乱码,确实GB2312内码的网页可以正常显示了,但这并非万全之策。因为当你的网页内码不是GB2312,就算你在网页用下面的meta指定了正确的语言,如ISO8859-1,也不会解码为ISO8859-1,因为Apache已经先你一步将GB2312指定为网页的语言了。


(2)养成良好的习惯,在每个网页的<head>;</head>;的最前面加入这行: 

    

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">; 

  一般的中文版网页编辑工具(例如FrontPage、Dreamweaver等)都会自动加上这行。 

3、如何解决中文文件名无法访问 

 

 在ie中选择 工具 ->; internet选项 ->; 高级 ->; 取消“总是以UTF-8发送URL”。 





UTF-8网页空白,在网页中加上metadata标识后,还需要手动调整编码為 utf-8 才能正常显示

如果使用的是Mozilla、Mozilla Firefox、Sarafi等其他目前流行的浏览器,通常就不会有这样的问题。

在网页的meta中指定用UTF-8:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />; 



在<head>;</head>;之前,把"Content-Type"放在最前面,便可以解決这样的问题了。 

原因:

IE 解析网页编码时是 HTML 內的标识优先的,然后是 HTTP header ;而mozilla 系列的浏览器刚刚好相反。

一般情况在,很多人是把<title>;</title>;排在最前面,并且在title中就出现了UTF-8中文,这样,IE在解析时,就先遇到UTF-8,不往下解析了,因此必须把如果把meta放在UTF-8出现之前,这样IE才能判断这个网页是以UTF-8编码的。 


总之:
无论是 PHP、JSP、ASP 或其他动态网页的脚本语言,如果需要作编码设定,最好放在最前面。

使用php,也可以定义php的默认语言. 

php.ini中: 

default_charset = "gb2312" 



释掉此行,做了以上修改,一样是为了让浏览器根据网页头中的charset来自动选择语言,这样就可以在同台服务器上提供多种语言的网页服务。


java中文乱码的解决 


 
 
在基于JAVA的编程中,经常会碰到汉字的处里及显示的问题,比如一大堆乱码或问号。
这是因为JAVA中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码,故会出现此问题。

1、在网页中输出中文。

JAVA在网络传输中使用的编码是"ISO-8859-1",故在输出时需要进行转化,如:
String  str="中文";
str=new  String(str.getBytes("GB2312"),"8859_1");
但如果在编译程序时,使用的编码是“GB2312”,且在中文平台上运行此程序,不会出现此问题,一定要注意。

2、从参数中读取中文

这正好与在网页中输出相反如:
str=new  String(str.getBytes("8859_1"),"GB2312");

3、操作DB中的中文问题

一个较简单的方法是:在“控制面扳”中,把“区域”设置为“英语(美国)”。如果还会出现乱码,还可进行如下设置:
取中文时:str=new  String(str.getBytes("GB2312"));
向DB中输入中文:str=new  String(str.getBytes("ISO-8859-1"));

4、在JSP中的中文解决:

在“控制面扳”中,把“区域”设置为“英语(美国)”.
在JSP页面中加入:
如果还不行正常显示,则还要进行下面的转换:
如:name=new  String(name.getBytes("ISO-8859-1"),"GBK");
就不会出现中文问题了。

CGI的?不知道对不?

找到CGI.pm,打开它,找到$self->;charset('ISO-8859-1');将它改为$self->;charset('GB2312');

相 关 文 章
相 关 软 件
没有相关下载
逃生 放生 黄玫瑰 想太多 那滋味 擦肩而过 放手去爱 北京欢迎你 依然在一起 吻得太逼真 感动天感动地 坐上火车去拉萨 怎么会狠心伤害我
心碎 冲动 小太阳 别碰我 蒲公英 千山万水 改变自己 一定要爱你 等爱的玫瑰 陷入爱里面 北极星的眼泪 最后一次的温柔 亲爱的那不是爱情
光荣 火花 坏女人 日不落 樱花草 为你写诗 独家记忆 夏天的味道 寂寞才说爱 忘不掉的伤 爱上你是个错 第三者的第三者 地球人都知道我爱你
假如 相思 是非题 有缘人 舍不得 我的答铃 死而无憾 外滩十八号 越爱越难过 123木头人 和寂寞说分手 爱上你是我的错 爱情里没有谁对谁错
加入收藏留言建议自助友情链接普通友情链接站长的Blog
版权所有   COPYRIGHT 2002-2008 ★IT学习者★ ALL RIGHTS RESERVED.