php中文文件is_file检验失败(编码问题)

  php中判断文件是否存在我们会使用file_exists函数或is_file函数,但在使用file_exists时如果你文件名或路径是中文在uft8编码文档时是无效。

$realname=‘中文.txt‘;

//后面加上一个"//IGNORE"就可以是ICONV()函数忽略错误,继续执行 

$realname = iconv("UTF-8","GB2312//IGNORE",$realname); 

//同“iconv”效果一样 

//$realname = mb_convert_encoding($realname, "GB2312", "auto");
if(file_exists($realname)) {     

    // 若不进行GB2312转码,永远都进不了这里 

} 

else {     

    echo ‘文件不存在 ...‘; 

}

iconv函数用法详解介绍: http://www.php100.com/html/php/hanshu/2013/0905/4691.html

mb_convert_encoding方法说明: http://www.yiibai.com/manual/php/function.mb-convert-encoding.html

mb_detect_encoding检查字符串编码: http://php.net/manual/zh/function.mb-detect-encoding.php

时间: 2024-11-05 22:32:20

php中文文件is_file检验失败(编码问题)的相关文章

python 处理中文文件时的编码问题,尤其是utf-8和gbk

python代码文件的编码 py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character.需要在代码文件的第一行或第二行添加编码指示: # coding=utf-8 ##以utf-8编码储存中文字符 print '中文'像上面那样直接输入的字符串是按照代码文件的编码来处理的,如果用unicode编码,有以下2种方式: s1 = u'中文' #u表示用unicode编码方式储存信息 s2 = uni

关于nodejs的几个干货(读中文文件编码问题/发送邮件/定时任务)

关于nodejs读取中文文件真是折腾了不少时间,网上各种方案,最后没有一个适用我,好在解决了. 下面的三个知识点都是从项目中抽出的,要单独运行脚本的话需要用全局模式来安装模块,比如安装中文转换模块(后续其它的也需要这么做): npm install -g iconv-lite npm install -g nodemailer npm install -g node-schedule 1.nodejs读取中文文件编码问题 准备一个文本文件(当然也可以是csv文件等)test.txt和text.c

python读取中文文件编码问题

python 读取中文文件后,作为参数使用,经常会遇到乱码或者报错asii错误等. 我们需要对中文进行decode('gbk') 如我有一个data.txt文件有如下内容: 百度 谷歌 现在想读取文件中内容构建查询语句代码如下: f=open('data.txt','r') for i in f.readlines(): data_line=i.strip() data=data_line.decode("gbk") print "this is %s"%data

Linux下windows中文文件乱码问题

table of content: 乱码问题 用gedit选择正确的字符编码打开文件 文件转码 总结 §乱码 Fedora安装时默认用UTF-8字符编码方式, 这么做有国际化的好处(和很多用utf-8的地方兼容), 但是也有兼容问题. 比如: 中文编码在windows下不是utf-8编码, 因为政策要求, 在中国销售的软件要用国标码 (即GBK, GB2312, GB18030(最新的)) 所以中文windows用GB18030的编码, 这就导致一个小问题. 在linux下打开windows的文

配置 .vimrc 解决 Vim / gVim 在中文 Windows 下的字符编码问题

转载自:-杨博的日志 - 网易博客 Vim / gVim 在中文 Windows 下的字符编码有两个问题: 默认没有编码检测功能 如果一个文件本身采用的字符集比 GBK 大(如 UTF-8.UTF-16.GB18030),那么其中无法在 GBK 中对应的字符都会出现乱码,保存时会丢失.即使编辑文件时正确检测出文件格式也无济于事. 第一个问题的解决办法是在 ~/.vimrc 中加入以下配置: set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,eu

swfupload组件后台获取中文文件名称乱码的问题解决

   问题描写叙述:用swfupload上传文件,含有中文名称的文件上传会报错,我用的是获取FileItem对象,用FileItem对象的getName()方法获取文件名会乱码,试着用request.setCharacterEncoding("UTF-8")及fileName= new String(fileName.getBytes("iso-8859-1";),"UTF-8"); 都不能够,用FileItem对象.getString(&quo

VIM查看文件编码 文件编码格式转换 文件名编码转换.

如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8.下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换. 查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编码格式.如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.v

解决IE、360、谷歌浏览器等无法访问FTP中文文件路径

最近开发一个项目,用户的文件是存放在FTP服务器上的.并且需要在浏览器中,浏览这些文件.FTP文件路径如下: 但是却出现了如下问题:ftp://192.168.1.121/成果/分区/建设控制/市域控规划分.jpg 1.FTP中文文件路径在Firfox中可以正常显示 2.但是在IE.360.谷歌浏览其中却提示,无法访问路径 经过查询资料,知道IE等浏览器对中文字符采用的是GBK的字符集编码,但是Firfox却是采用的UTF-8的字符集编码. 所以得出如下结论: 1.在客户端判断浏览器产品是否属于

c++中sqlite中文路径创建数据库失败的问题

 sqlite3里面使用的是utf-8的编码,所以在创建数据库的时候若果路径是纯英文字母和数字的话,那么多ansii和utf-8编码是一样的,这个时候sqlite3_open函数的调用完全没问题.但是如果是中文的话asnsii直接转化为Utf-8就会出错, 找不到路径,从而创建或者打开数据库失败.解决的方法如下: //sdk中可以直接从UNICODE转为utf-8,不能直接从ansii转为utf-8 //所以 Ansii要转为Utf-8, 需要先转为UNICODE 再转为utf-8 void U