- 论坛徽章:
- 0
|
系统:$win2K ad sever
apache 2.0.49
php 5.0
mysql 5.0.0 alpha-nt
客户端:$win2k ad server
IE 6.0
//引用文件 $conn=mysql_connect("localhost","root","" ;
//都引用同一个文件。
//部分上传表单。保存格式使用UTF-8。
//.....
<meta http-equiv="content-type" content='text/html charset=utf-8">;
//.....
<form name="form1" method="post" enctype="multipart/form-data" action="action/upload.php">;
<input type="file" value="浏览" size="30" name="file">;
<input type="submit" value="确定">;
</form>;
//.....
部分处理代码:保存格式使用UTF-8
$file=$_FILES['file'];
copy($file['tmp_name'],"tmp.tmp"];
$fo=fopen("tmp.tmp","rb" ;
$data=addslashes(fread($fo,filesize("tmp.tmp" ));
$name=$file['name'];
$type=$file['type'];
$sql="INSERT INTO `test`.`icons`(`data`,`name`,`type`) VALUES(\"$data\",\"$name\",\"$type\" ;
fclose($fo);
//表 icons 的 data 列 类型为 longblob;
//保存一切正常。
//显示代码
$id=$_GET['id'];
$sql="SELECT * FROM `test`.`icons` WHERE id=$id";
$query=mysql_query($sql,$conn);
$row=mysql_fetch_array($query);
$type=$row['type'];
$data=$row['data'];
header("Content-type type);
echo $data;
//
上面的显示代码如果保存成 ANSI 格式,则一切正常。但如果保存成UTF-8 格式,则不能显示。错误有两个,一个是提示 HEADER 已经被修改。
另一个错误提示是 图片不能显示。(估计可能是头文件错误造成)
apache 的配置文件 httpd.ini 配置默认字符为 GB2312 (因为有其他页面在这里。所以不能修改。其他页面没有指定字符集)
php 配置文件 php.ini 配置文件 默认字符集 没有使用。估计是 iso-8859-1
mysql 配置文件 默认字符集 没有使用。
搞不清楚的是,为什么 显示文件保存成 utf-8 格式就不能正常显示呢。
而保存成 ansi 格式则可以。(其他文字数据不存在这个问题) |
|