tingxx 发表于 2005-11-11 17:03:52

一个php问题不解:(

一个php问题不解:(
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>量子光学课件</TITLE>
<meta name="GENERATOR" content="Quanta Plus">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<BODY>
<?php
include ("readme.html");
$handle=opendir('.');

while ($file = readdir($handle)) {
if ($file!= "readme.html" && $file!="index.php" && $file!="." && $file!="..")
{
echo "<a href=".$file.">".$file."</a><br>";
}
}
closedir($handle);
?>
</BODY>
</HTML>

目的是想列出当前目录下的文件,并做成链接的形式。运行也没有错,很正常。。。
问题就出在当目录下存在的中文文件名时,程序所给出的链接在win的ie下不能打开。说不存在该地址我猜想应该是编码的问题,但是应该如何改呢?

涩兔子 发表于 2005-11-11 17:48:33

如果tingxx使用的非Windows服务器的话,保持charset=utf-8就OK

使用Apahce遍历DocumentRoot下的文件岂不是更简单 :mrgreen:

tingxx 发表于 2005-11-11 17:58:23


如果tingxx使用的非Windows服务器的话,保持charset=utf-8就OK

意思是将

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

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

吗?


使用Apahce遍历DocumentRoot下的文件岂不是更简单 Mr. Green

这名话是什么意思?难道有什么更好的方法吗?仔细说一说嘛 :mrgreen:
初学php,从书上抄一些代码应付老师的差师:cry:

涩兔子 发表于 2005-11-11 18:26:10

我晚上回家好好给你检测一下,我现在公司 :mrgreen:

jiangtao9999 发表于 2005-11-11 18:31:46

修改 apache 的 conf 文件,使默认编码为你的系统所使用的编码。

tingxx 发表于 2005-11-11 18:38:09


修改 apache 的 conf 文件,使默认编码为你的系统所使用的编码。

一来我没有改apache的conf文件的权利,二来含有中文的文件在我的linux下是可以打开的。却是ie不能打开....
IE的兼容太差了 :mrgreen::mrgreen:

大位大哥可以到这个地方试试
www.magiclinux.org/people/tingxx/test

jiangtao9999 发表于 2005-11-11 20:23:52

试试用 php 代码转换成 %xx 的方式,应该有这样的函数。

tingxx 发表于 2005-11-11 20:35:26

%xx这种格式是不是utf-8格式??

tingxx 发表于 2005-11-11 21:03:28

通过使用
rawurlencode 把字符变成%xx的形式,这样ie是可以打开了,但是ie得到的文件名却是乱码....一个奇怪的事就是在不使用rawurlencode的情况下,ie下使用其它的下载工具都可以正确的下载..惟有这个ie...真恶心

算了,还是改用英文的文件名得了。真是受不了了

jiangtao9999 发表于 2005-11-11 21:06:20

:roll:
8bit 文字在网络上总是有问题…………
页: [1]
查看完整版本: 一个php问题不解:(