php创建中文文件夹乱码问题

beyond702 2010-07-23 02:13:08

小弟最近在做一个php项目,需要用php创建文件夹,文件夹的名字有可能是中文的,当用mkdir创建文件夹时中文的文件夹名称就变成了乱码,请问这是怎么回事啊?有没有什么创建中文文件夹的方法,谢谢!
...全文
798 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvhifer 2012-12-25
  • 打赏
  • 举报
回复
我也有点不解,人家问怎么创建中文的直接回答就好了,老说不创建中文的。。。 我现在再做用户相册,也遇到了这个问题,难道用户自己创建个相册非得起英文名字或id?
uxiaodazi 2011-10-27
  • 打赏
  • 举报
回复
上面的 说了等于白说! 你用PHP 能获取中文的批音吗? 我正在做个和 LZ相似的系统,也是在文件夹的问题很纠结!
codetaste 2011-08-08
  • 打赏
  • 举报
回复
说实话。直接用中文名的拼音就可以了啊。
beyond702 2010-07-23
  • 打赏
  • 举报
回复
非常感谢各位的解答!结贴~~~
PIGer920 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 beyond702 的回复:]
我也想过这样,但是在一个用户第一次上传的时候,他在数据库表中的id是不知道的,没办法利用id作为文件夹的名字啊,所以我就放弃这种方法了
[/Quote]
先上传到一个文件夹
注册之后 就知道id了 在copy过来
beyond702 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 foolbirdflyfirst 的回复:]
引用 5 楼 beyond702 的回复:

引用 2 楼 piger920 的回复:
创建中文文件夹完全没有必要


但是我这个需要创建中文的文件夹啊,有人上传文件,我这里是按照每个人的名字来创建文件夹的,他的名字肯定是中文的,谢谢!

用user_id创建文件夹不行么,一定要用user_name.
[/Quote]


我也想过这样,但是在一个用户第一次上传的时候,他在数据库表中的id是不知道的,没办法利用id作为文件夹的名字啊,所以我就放弃这种方法了
beyond702 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 piger920 的回复:]
引用 9 楼 beyond702 的回复:
引用 6 楼 foolbirdflyfirst 的回复:
为啥一定要用中文名呢,你能保证你创建中文目录的代码运行在不同的服务器都能正常工作么?


我这个系统需要为每个人上传的东西都创建一个文件夹,所以就用那个人的名字做文件夹的名字了

不是解决问题的正常方法
重名呢?
[/Quote]


我用了用户的其他信息和名字一起作为标识,不会有重名
PIGer920 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 beyond702 的回复:]
引用 6 楼 foolbirdflyfirst 的回复:
为啥一定要用中文名呢,你能保证你创建中文目录的代码运行在不同的服务器都能正常工作么?


我这个系统需要为每个人上传的东西都创建一个文件夹,所以就用那个人的名字做文件夹的名字了
[/Quote]
不是解决问题的正常方法
重名呢?
Dleno 2010-07-23
  • 打赏
  • 举报
回复
windows :GBK
LINUX :UTF-8

不同系统用不同编码
amani11 2010-07-23
  • 打赏
  • 举报
回复
非要中文可以
mkdir(iconv("UTF-8", "GBK", "中文"), 0777);//页面编码utf-8

但是,强烈建议放弃这个做法……
beyond702 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 foolbirdflyfirst 的回复:]
为啥一定要用中文名呢,你能保证你创建中文目录的代码运行在不同的服务器都能正常工作么?
[/Quote]

我这个系统需要为每个人上传的东西都创建一个文件夹,所以就用那个人的名字做文件夹的名字了
foolbirdflyfirst 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 beyond702 的回复:]

引用 2 楼 piger920 的回复:
创建中文文件夹完全没有必要


但是我这个需要创建中文的文件夹啊,有人上传文件,我这里是按照每个人的名字来创建文件夹的,他的名字肯定是中文的,谢谢!
[/Quote]
用user_id创建文件夹不行么,一定要用user_name.
beyond702 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 piger920 的回复:]
创建中文文件夹完全没有必要
[/Quote]

但是我这个需要创建中文的文件夹啊,有人上传文件,我这里是按照每个人的名字来创建文件夹的,他的名字肯定是中文的,谢谢!
foolbirdflyfirst 2010-07-23
  • 打赏
  • 举报
回复
为啥一定要用中文名呢,你能保证你创建中文目录的代码运行在不同的服务器都能正常工作么?
beyond702 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vn700 的回复:]
中文windows一般要用gbk的编码建中文文件(夹)。
[/Quote]


那请问在创建文件夹的时候怎么把文件夹的名字转换成bgk呢,我看只有utf8_encode()这个函数,但是没见有转换成gbk的函数。
CodeBus 2010-07-23
  • 打赏
  • 举报
回复
中文windows一般要用gbk的编码建中文文件(夹)。
PIGer920 2010-07-23
  • 打赏
  • 举报
回复
创建中文文件夹完全没有必要
kyzy_yy_pm 2010-07-23
  • 打赏
  • 举报
回复
window系统编码与你的编码不对头
最近一直在研究爬虫和Lucene,虽然开始决定选用Heritrix来执行爬虫操作,但是后来发现用它来做还是存在一定的问题,比如需要程序生成相应的XML文件,对于同一个Job,怎样才能保证重复运行该Job时文件夹始终是同一个(Heritrix为Job创建文件夹的规则是“Job名称-时间戳”)等等,都是需要考虑的问题,最终还是将其搁浅。    后来google了一下,找到了一个简单爬虫的程序代码(http://www.blogjava.net/Jack2007/archive/2008/03/24/188138.html),随即试验了一下,发现确实能得到网页的内容,在这里还是要谢谢代码的提供者——Jack.Wang。    虽然试验成功,但是在随后的大数据量试验时,还是出现了问题。最初试验时,我只是让程序去抓取10个URL链接,当我将URL链接数改为100个时,问题出现了——URL中存在重复,而且非常容易的就变成死循环。举个例子来说,比如我首先爬的是A.html,在A.html中有两个链接:B.html,C.html,等爬完A.html以后,程序会爬B.html,这时如果B.html中的所有链接中有A.html这个页面的链接,那么程序又会去爬A.html这个页面,如此一来就形成了一个死循环,永远也不能停止。    跟踪程序发现,原来是在添加要抓取的网页的链接列表中,没有将已经抓取过的URL去除,所以才造成了死循环。现在虽然加上了这个判断,但是从我运行程序的效果来看,也不是很理想,总是感觉有些慢,800个页面要一两分钟才能爬完,这个我觉得有点说不过去。    这个产品,做到现在,我遇到了这么几个情况,有和大家分享的,也有向大家请教,求助的。    1.关于对应关系数据的保存方式    在创建索引的时候,需要将网页的URL和网页的内容传到相应的方法中,当然URL和内容是要对应的,也许是经验太少吧,我采取的是通过构建一个JavaBean的方式来传递的,不知道大家有没有更好的方法       2.关于要创建索引的内容的保存方式    最初的想法是不创建文件,直接将内容保存到变量中,然后创建索引,即先抓取网页的内容,然后将网页的内容和URL保存到自己构建的JavaBean对象中,接着将这个对象放到一个list列表中,等所有网页抓取完毕以后,将这个列表传到创建索引的方法中。这种做法看似不错,可是当URL数量很大时,会导致内存不够用,所以还是创建文件比较稳妥。    3.关于网页编码问题    遇到这个问题也是一个巧合,本来我抓取的是客户的一个网站,后来同事说如果客户看访问日志,这个月的数据会和平常的数据不一样,所以我就抓取公司的网站,结果,问题出现了。原先公司的网站是用GB2312编码做的页面,现在采用的是UTF-8的编码,虽然我已经判断了页面的编码,可是依然不能解决保存的文件中文乱码问题,不知道大家有什么好办法没有。错误信息为:java.io.UnsupportedEncodingException    附件为爬虫代码 本文出自 “徘徊在c#,java,php之间” 博客,请务必保留此出处http://jerrysun.blog.51cto.com/745955/221879

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧