[原创]解决apache显示乱码的方法
发表于:2007-05-25来源:作者:点击数:
标签:
作者:南非蜘蛛zhedou@sohu.com 个人主页:http://www.douzhe.com 转载请保留作者信息 今天安装httpd-2.0.43.tar.gz,我这个人没有什么爱好,就是爱用一个新软件,安装这里略过. 当把原来的程序copy到安装好的apache目录,然后启动目录发现英文可以显示,中文是乱码
作者:南非蜘蛛 zhedou@sohu.com
个人主页:http://www.douzhe.com
转载请保留作者信息
今天安装httpd-2.0.43.tar.gz,我这个人没有什么爱好,就是爱用一个新软件,安装这里略过.
当把原来的程序copy到安装好的apache目录,然后启动目录发现英文可以显示,中文是乱码,当把IE工具栏的查看-->编码设置成简体中文,可以正常显示中文,但点击连接,其它页面还是乱码,关掉IE,从新启动IE,发现也是乱码,晕ing.........网上四处一顿乱搜
有人说网页里要加
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
这句话,我的每个网页都有这句话,肯定不是这个问题,还有人说
[color=red:af2f703089]方法一:[/color:af2f703089]
AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset off
ok,搞定,就是这个问题,大家以后出现乱码可以试试这个方法
好像这个方法也可以
[color=red:af2f703089]方法二:[/color:af2f703089]
AddDefaultCharset GB2312
大家试试告诉我结果吧
然后从起apache服务,一定要从起
color=red]方法三:[/color]
kuu的程序解决apache中文文件名问题--大家试试
前段时间好象有人问过这个问题:就是在apache目录中不放index文件而由apache自动生成索引,中文文件名保存时不正常的问题。
学校开始放暑假有空,想出个解决办法,希望能有点用。
关于设置IE中的UTF-8,我想可以编一段脚本更改注册表实现(不过那样会不会被当作病毒),也可以在页面上提醒用户更改。
程序附后:
<?
/************************************************************************/
/* 显示文件索引 */
/* v0.1 2002年7月19日 */
/* */
/* 浙江建设职业技术学院 王进勇 kuu@163.net */
/************************************************************************/
//未解决的问题:无效链接问题,文件大小显示和排序
//要求不显示的文件名
$file_hide=array(".",basename($
PHP_SELF), //程序名称
".hta
clearcase/" target="_blank" >ccess",
);
//文件扩展名对应的图标
$file_map=array(
"d ir"=>"folder.gif",
"htm"=>"text.gif",
"html"=>"text.gif",
"txt"=>"text.gif",
"png"=>"image2.gif",
"gif"=>"image2.gif",
"jpg"=>"image2.gif",
"exe"=>"binary.gif",
"com"=>"binary.gif",
"bin"=>"binary.gif",
"zip"=>"compressed.gif",
"gz"=>"compressed.gif",
"mp3"=>"sound2.gif",
"ra"=>"sound2.gif",
"pdf"=>"layout.gif",
);
//读入文件名、大小、时间
$handle=opendir('.');
while ($file = readdir($handle)) {
//处理“上一级目录”
if(".."==$file){
$file_name_back="上一级目录";
$file_icon_back="back.gif";
$file_link_back="../";
$file_size_back="-";
$file_time_back=date("F j Y h:i:s A",filemtime($file));
continue;
}
//处理不显示的文件名
for($j=0;$j<count($file_hide);$j++)
if($file_hide[$j]==$file) $file=".";
if("."==$file) continue;
//处理其它文件: 取文件名、类型、大小、时间、扩展名、链接文件实际指向
$file_name=$file; //名称
$file_size=("dir"==filetype($file)) ? "-" : filesize($file); //大小
$file_time=filemtime($file); //时间
$file_type=filetype($file); //类型(目录,文件,链接等)
//链接的目标为目录则设定其类型为目录
if("link"==filetype($file) && "dir"==filetype(readlink($file)) 
$file_type="dir";
//目录的链接名后加/,非目录不加;目录的扩展名为d ir,非目录取文件扩展名
if("dir"==filetype($file)){
$file_link="$file/";
$file_ext="d ir";
}else{
$file_link="$file";
$file_ext=(strrpos($file,".")) ? substr($file,strrpos($file,".")+1) : "";//扩展名
$file_ext=strtolower($file_ext); //转换成小写
}
//根据扩展名取图标文件名
$file_icon=$file_map[ $file_ext ];
if(""==$file_icon) $file_icon="unknown.gif";
//转存到数组中
$file_list[0][]=$file_name; //名称
$file_list[1][]=$file_size; //大小
$file_list[2][]=$file_time; //时间
$file_list[3][]=$file_type; //类型(目录,文件,链接等)
$file_list[4][]=$file_link; //链接名
$file_list[5][]=$file_ext; //扩展名
$file_list[6][]=$file_icon; //图标名
}
closedir($handle);
//列头(可排序)
$title_name="<A HREF='$PHP_SELF?sort=NameA'>名称</A>";
$title_size="<A HREF='$PHP_SELF?sort=SizeA'>大小</A>";
$title_time="<A HREF='$PHP_SELF?sort=TimeA'>修改时间</A>";
$title_memo="<A HREF='$PHP_SELF?sort=MemoA'>备注</A>";
//默认根据排序依据列
$file_list_disp=$file_list[0];
//控制根据参数排序
switch ($sort) {
case "NameA":
asort($file_list[0],SORT_STRING); //根据名称顺序
$title_name="<A HREF='$PHP_SELF?sort=NameB'>名称</A>";
$file_list_disp=$file_list[0];
break;
case "NameB":
arsort($file_list[0],SORT_STRING); //根据名称降序
$title_name="<A HREF='$PHP_SELF?sort=NameA'>名称</A>";
$file_list_disp=$file_list[0];
break;
case "SizeA":
asort($file_list[1],SORT_NUMERIC); //根据大小顺序
$title_size="<A HREF='$PHP_SELF?sort=SizeB'>大小</A>";
$file_list_disp=$file_list[1];
break;
case "SizeB":
arsort($file_list[1],SORT_NUMERIC); //根据大小降序
$title_size="<A HREF='$PHP_SELF?sort=SizeA'>大小</A>";
$file_list_disp=$file_list[1];
break;
case "TimeA":
asort($file_list[2],SORT_NUMERIC); //根据时间顺序
$title_time="<A HREF='$PHP_SELF?sort=TimeB'>修改时间</A>";
$file_list_disp=$file_list[2];
break;
case "TimeB":
arsort($file_list[2],SORT_NUMERIC); //根据时间降序
$title_time="<A HREF='$PHP_SELF?sort=TimeA'>修改时间</A>";
$file_list_disp=$file_list[2];
break;
default:
//默认不排序
}
?>
<!-- 以下为HTML文件头 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<HEAD>
<TITLE>Index of <?= dirname($PHP_SELF) ?></TITLE>
</HEAD>
<style type="text/css">
<!--
table {font-family: "宋体"; font-size: 13px}
-->
</style>
<BODY>
<H1>Index of <?= dirname($PHP_SELF) ?></H1>
<!-- 表头开始 -->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="5%" align="center">&</td>
<td width="30%" align="left">&<?=$title_name?></td>
<td width="8%" align="right"><?=$title_size?></td>
<td width="32%" align="center"><?=$title_time?></td>
<td width="30%" align="center"><?=$title_memo?></td>
</tr>
<tr>
<td colspan="5">
<hr size="2">
</td>
</tr>
<!-- 表头结束 -->
<?
//"上一级目录"固定显示在第一行
echo "<tr height=25>\n";
echo "<td><IMG SRC=\"/icons/".$file_icon_back."\" ALT=\"[".$file_link_back."]\"></td>";
echo "<td><A HREF=\"".$file_link_back."\">".$file_name_back."</A>"."</td>";
echo "<td align=right>".$file_size_back."</td>";
echo "<td align=left>&&&".$file_time_back."</td>";
echo "<td>&</td>";
echo "\n</tr>\n";
//显示其它文件行
//$file_list_disp=$file_list[0];
//arsort($file_list[0]);
while (list($i) = each($file_list_disp)) {
echo "<tr height=25>\n";
echo "<td><IMG SRC=\"/icons/".$file_list[6][$i]."\" ALT=\"[".$file_list[5][$i]."]\"></td>";
echo "<td><A HREF=\"".$file_list[4][$i]."\">".$file_list[0][$i]."</A>"."</td>";
echo "<td align=right>".$file_list[1][$i]."</td>";
echo "<td align=left>&&&".date("F j Y h:i:s A",$file_list[2][$i])."</td>";
echo "<td>&</td>";
echo "\n</tr>\n";
}
?>
<!-- 显示页脚信息 -->
</table>
<HR>
<?=$SERVER_SIGNATURE?>
</BODY></HTML>
feijin 回复于:2003-06-16 23:13:41
|
修改conf文件 ,方法二最好用,也最简单
AddDefaultCharset GB2312
|
cww2 回复于:2003-06-17 08:33:34
|
我的Apache 是Oracle9.2自带的,版本是1.3。
照你们说的做了,怎么都不行,太怪了。
方法一我试过,但我的httpd.conf里没有AddDefaultCharset ISO-8859-1此项,我是手工加了
AddDefaultCharset off
方法二:
AddDefaultCharset GB2312
这两种方法都试过,以前是用的ora_web4.0.8可以,改成Apache就不行了。 ops:
|
yifengling0 回复于:2003-07-14 17:13:10
|
我想在一个服务器里,即能正确显示日文,又能显示中文。怎么办呀?
缺省字符集只有一个!
|
frankc 回复于:2003-07-22 15:24:53
|
我用的是PHP+mysql空间,没法更改配置,可以在.php或htm的脚本中实现吗?
|
原文转自:http://www.ltesting.net
|