- 浏览: 634056 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (314)
- 生活 (2)
- c# (37)
- 技术 (3)
- 400电话 (0)
- 400常见问题 (0)
- 400资费 (0)
- html (7)
- css (0)
- 数据库 (7)
- javascript (16)
- php (33)
- asp.net mvc2 (10)
- mysql (9)
- C# 3.0 LinQ (10)
- vs2005或vs2008 (4)
- flash and as3 (7)
- fms (1)
- dedeCMS (11)
- java (33)
- j2me (1)
- swing (1)
- c++ (1)
- jquery easyui (3)
- jquery (5)
- android (29)
- MongoDB (9)
- VtigerCRM (1)
- test (0)
- linux (30)
- nutch (2)
- SqlServer数据库 (2)
- 数据检索 (2)
- java抓取 (11)
- 乐天 (1)
- 淘宝 (1)
- Silverlight4.0 (6)
- sphinx实时索引 (5)
- ecshop (9)
- codeigniter(CI) (3)
- axure6 (1)
- 京东店铺装修教程 (2)
- xpath (1)
- joomla (2)
- bpm (1)
- Bootstrap (2)
- knockout (4)
- ecstore (4)
- css3 (1)
- 微信 (2)
- dede (0)
- soa_edi (1)
- odoo (0)
- web (1)
最新评论
-
骑着蜗牛超F1:
在ie6下报了个stack overflow at line ...
兼容ie6和ie7 的16进制码流在html中显示为图片代码(base64) -
冰之海洋:
好像少了一句代码吧? FloatingFunc.show(th ...
android 一直在最前面的浮动窗口效果 -
yanzhoupuzhang:
连接有问题!
iis7.0官方下载 IIS 7.0(微软Web服务器组件IIS 7.0) 官方(windows 2003,XP,2000) -
whatable:
唉,楼主你都没有搞清楚重量级和轻量级。。。。既然引用了SWT, ...
java swing 内置浏览器打开网页显示flash图表-swt Browser应用 -
yy_owen:
我晕啊,你链接的什么内容额,我要的iis,你链接个视频什么意思 ...
iis7.0官方下载 IIS 7.0(微软Web服务器组件IIS 7.0) 官方(windows 2003,XP,2000)
通过把Content-Type设置为application/octet-stream, 可以把动态生成的内容当作文件来下载,相信这个大家都会。
那么用Content-Disposition设置下载的文件名, 这个也有不少人知道吧。 基本上,下载程序都是这么写的:
<?php
$filename = "document.txt";
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $filename);
print "Hello!";
?>
[/cdoe]
这样用浏览器打开之后,就可以下载document.txt。
但是,如果$filename是UTF-8编码的,有些浏览器就无法正常处理了。 比如把上面那个程序稍稍改一下:
[code]
<?php
$filename = "中文 文件名.txt";
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $filename);
print "Hello!";
?>
[/cdoe]
把程序保存成UTF-8编码再访问,IE6下载的文件名就会乱码。 FF3下下载的文件名就只有“中文”两个字。Opera 9下一切正常。
输出的header实际上是这样子:
Content-Disposition: attachment; filename=中文 文件名.txt其实按照RFC2231的定义, 多语言编码的Content-Disposition应该这么定义:
Content-Disposition: attachment; filename*="utf8''%E4%B8%AD%E6%96%87%20%E6%96%87%E4%BB%B6%E5%90%8D.txt"即:
filename后面的等号之前要加 *
filename的值用单引号分成三段,分别是字符集(utf8)、语言(空)和urlencode过的文件名。
最好加上双引号,否则文件名中空格后面的部分在Firefox中显示不出来
注意urlencode的结果与php的urlencode函数结果不太相同,php的urlencode会把空格替换成+,而这里需要替换成%20
经过试验,发现几种主流浏览器的支持情况如下:
IE6 attachment; filename="<URL编码之后的UTF-8文件名>"
FF3 attachment; filename="UTF-8文件名"
attachment; filename*="utf8''<URL编码之后的UTF-8文件名>"
O9 attachment; filename="UTF-8文件名"
Safari3(Win) 貌似不支持?上述方法都不行
这样看来,程序必须得这样写才能支持所有主流浏览器:
[code]
<?php
$ua = $_SERVER["HTTP_USER_AGENT"];
$filename = "中文 文件名.txt";
$encoded_filename = urlencode($filename);
$encoded_filename = str_replace("+", "%20", $encoded_filename);
header('Content-Type: application/octet-stream');
if (preg_match("/MSIE/", $ua)) {
header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
} else if (preg_match("/Firefox/", $ua)) {
header('Content-Disposition: attachment; filename*="utf8\'\'' . $filename . '"');
} else {
header('Content-Disposition: attachment; filename="' . $filename . '"');
}
print 'ABC';
?>
发表评论
-
phpredis 安装
2015-12-16 16:47 577phpredis是个人觉得最好的一个php-redis客户端, ... -
Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
2015-08-26 10:04 679一、问题: 数据库表数据 ... -
Ubuntu14.04安装 php及mysql
2015-08-18 11:17 1064①安装php: sudo apt-get install ... -
PHP swfupload图片文件上传实例代码
2015-05-18 11:34 693swfupload是一个flash插件它可以结合php来快 ... -
php 如何开启com组件?
2013-05-08 13:04 2184先到PHP.INI中打开COM选项,com.allow_d ... -
教大家如何利用PHP去修改word的内容
2013-05-02 09:24 1909今天给大家带来一个教程,教大家如何利用PHP去修改wo ... -
20130324
2013-03-24 22:36 0203 -
PHP检测函数所在的文件名
2013-01-20 12:56 966很简单的功能,用到PHP中的反射机制,具体使用的是Refl ... -
CKEditor图片上传功能开启方法
2012-03-15 17:12 1763PHP怎么给ckeditor编辑器加上传图片的功能? A ... -
不错的威盾PHP加密专家解密算法
2012-02-21 16:29 1194<?php <?php /********* ... -
在php中使用CKEDITOR在线编辑器
2012-01-30 16:55 2955一、官方Download 1、CKEditor ... -
c#连接mysql中文乱码解决方案(MySql.Data.dll)
2012-01-11 10:22 4619今天用C#类连接mysql数据库出现中文乱码具体解决方案如下: ... -
windows nginx php配置
2011-12-27 14:40 1501传说中nginx要比apache的负载均衡好的多,堪称神器 ... -
开源VtigerCRM的安装
2011-10-14 15:14 3520SugarCRM是一个好东西,04年刚刚发布 ... -
MongoDB的group分组操作
2011-09-15 15:11 2066先插入测试数据: for(var i=1; i<20; ... -
用php实现mongoDB的基本操作
2011-09-15 15:07 1297说到php连mongoDB,不得不先介绍一下php的官方手 ... -
用 nuSOAP解决传递对象数组的问题
2011-08-25 15:48 1504准备工作 首先定义一个类UserInfo:class ... -
PHP SOAP服务器端 C#客户端
2011-08-24 17:22 1321最近写了个PHP的SOAP服务器 端,实现了PHP客户端的调 ... -
php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!
2011-08-17 16:59 1971php如何将图片gif,jpg或mysql longblob或 ... -
php的date()函数详细介绍
2011-08-04 16:46 7721,年-月-日 echo date('Y-m ...
相关推荐
然而,由于编码问题,有时在导出CSV文件时会出现乱码。本示例将详细讲解如何使用PHP正确地导出CSV文件,避免出现乱码情况,并介绍相关的关键知识点。 首先,我们需要了解字符编码的基本概念。在处理文本数据时,...
最后,解决中文乱码问题可以使用一种更好的解决方法,即生成一个只有字母和数字的序列作为文件名,而将原来带有中文的名字保存在数据库中,这样调用move_uploaded_file()就不会出现问题,下载的时候只需将文件名改为...
### PHP之JPgraph横坐标中文乱码问题解析 在处理PHP与JPgraph图表库时,经常遇到的一个问题是中文字符在横坐标上显示为乱码。本文将深入探讨这一问题,并提供一个具体的解决方案。 #### 问题描述 在使用PHP结合...
以下将详细分析并解决PHP向MySQL插入中文乱码问题,以及如何正确处理PHP文件内容写入数据库。 首先,我们需要确保数据库的编码设置正确。MySQL数据库通常使用UTF-8编码,因此创建数据库和表时应指定`CHARACTER SET ...
### 完美解决PHP中文乱码问题:深入解析与实用指南 #### 一、理解PHP中文乱码问题 在PHP编程中,中文乱码问题是开发者经常遇到的挑战,尤其是在处理多语言网站或应用时。这一问题主要源于字符集编码不一致,即数据...
本篇文章将详细介绍如何在Flex中实现文件上传、预览、下载功能,并解决中文文件名在这些操作中可能出现的乱码问题。 首先,文件上传是通过HTTP的POST请求来实现的。在Flex中,我们可以使用`URLLoader`类来发送数据...
然而,当涉及到中文字符时,可能会出现乱码的问题。本文将深入探讨如何在PHP中生成包含中文字符的PDF,避免乱码现象,并提供一个具体的小票格式实例作为参考。 首先,我们需要了解PDF文档的编码原理。PDF支持多种...
本文将详细讲解如何利用这两个插件为PDF文件添加水印,尤其是解决中文乱码的问题。 首先,fpdf是一个开源的PHP类库,它允许我们在服务器端生成PDF文件。fpdf提供了丰富的API,可以方便地创建、编辑和打印PDF文档。...
在使用PHP+MySQL进行开发的过程中,中文乱码问题是常见的一个问题。乱码现象通常发生在从数据库查询中文数据时,显示出来的中文变成了不可识别的符号或者问号。产生这种现象的主要原因是**编码不一致**。 1. **...
大家一般都会知道到生成的csv文件,中文或其他的语言会出现乱码的问题,这是因为csv它不支持utf-8的原因,在我上传的这个文件中已经很好的解决了它的乱码的问题,如果不会使用可以给我留言
一般来说在php中碰到乱码多半是编码问题,在这里我们实例分析了fgetcsv读取csv文件乱码原因所在与解决方法。 例子如下: 复制代码 代码如下:function get_csv_contents( $file_target ){ $handle = fopen( $...
1. **PHP文件编码**:确保PHP源代码文件使用统一的编码,最好是UTF-8无BOM格式,以避免文件内部的乱码问题。 2. **数据库编码**:如果数据存储在数据库中,要确保数据库、表和字段的编码与PHP应用使用的编码一致,...
通过这三个文件的配置,可以解决 Apache、MySQL 和 PHP 的乱码问题,从而确保 Web 应用程序正确地显示中文。 此外,还需要注意,在使用 PHPMyAdmin 时,需要选择正确的语言和编码,以便正确地显示中文。在 MySQL 的...
在使用PHP与MySQL进行Web开发的过程中,中文乱码问题是常见的一个问题。通常情况下,这主要是由于系统各部分(如PHP脚本、MySQL数据库、操作系统等)之间的字符编码设置不一致所引起的。解决乱码问题的关键在于确保...
在处理PHP中文乱码问题时,首要任务是确保PHP文件本身的编码与其所声明的网页编码相匹配。这涉及到设置正确的HTTP头部信息以及调整文件的实际编码格式。 ##### 1. PHP文件与网页编码匹配 - **GB2312编码**: - ...
这样在调用`move_uploaded_file()`时不会出现问题,同时在下载时通过将文件名改回原始带有中文的文件名即可实现中文文件名的下载。 **示例代码:实现中文文件名下载** ```php header("Pragma: public"); header(...
在处理中文数据时,用户可能会遇到一个常见问题:当他们尝试导出数据到Excel或CSV格式时,中文字符显示为乱码。这个问题通常是由于字符编码不兼容或者配置不当引起的。 首先,我们要理解乱码的根源。在计算机系统中...
MySQL中的汉字乱码问题是一个常见的困扰许多开发人员和数据库管理员的问题。这主要涉及到字符编码设置不正确,导致在存储或显示汉字时出现乱码。在MySQL中,字符集是用来定义如何存储和处理字符的规则,它包括服务器...
文章中提到,作者在项目中遇到了生成的压缩包文件(可能是通过tar或gzip命令创建的)在Linux下显示中文文件名时出现乱码的问题。他们发现,Windows系统默认使用GBK编码,而Linux默认使用UTF-8编码,因此在处理文件名...