php生成的中文文件名会变成乱码,应该这样解决

现在php有很多类库,会生成文件,比如生成zip文件,生成二维码等等。这些类库用起来很爽,但是一旦生成带有中文的文件名,极有可能出现乱码。

问题:生成的中文文件名会变成乱码

解决:使用函数:iconv()、rename()

  生成文件名时,直接生成英文名,比如:a.zip、c.zip等等。然后,使用php的移动文件的函数rename即可,

  rename(‘a.zip‘,iconv(‘UTF-8‘, ‘GB2312//IGNORE‘, ‘中文a.zip‘));
  ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。

时间: 2024-10-11 13:11:39

php生成的中文文件名会变成乱码,应该这样解决的相关文章

29. 在Linux上使用unzip解压以默认编码解压,中文文件名会出现乱码

解决办法: 下载p7zip-9.13-1.el5.rf.x86_64.rpm和p7zip-plugins-9.13-1.el5.rf.x86_64.rpm包 用以下方法安装后,使用7z x filename.zip,解压即可解决乱码问题. rpm -ivh p7zip-9.13-1.el5.rf.x86_64.rpm rpm -ivh p7zip-plugins-9.13-1.el5.rf.x86_64.rpm 安装包下载地址:http://dag.wieers.com/rpm/packages

手机打开PDF文档中文英文支持(乱码问题)解决攻略

电子书的优点很多,随时随地阅读,无论白天黑夜走路坐车都能阅读:想确认一下某句话是不是这本书里的,搜索一下就可以知道:搬家也不用发愁,几万本书带在身上,依然轻松步行.我买了一台平板主要动因就是为了看书,但是有时候会遇到一些问题:一本PDF格式的电子书在电脑上打开时显示正常,用手机打开却出现乱码.通过网络查询,找到了解决办法.这里分享给大家.过程不算很麻烦.一本书2-3分钟搞定. PDF文件自身是可以嵌入字体的,这样就可以在任何语言的设备上直接阅读,而不用考虑该设备上是否有相应的字体.但是PDF文件

sublime text3中文文件名显示为框框,怎么解决

点击Preferences选项--settings {    "font_size": 20,    "ignored_packages":    [        "Vintage"    ]} 修改为: {    "font_size": 22,    "dpi_scale":1.0    //这里是关键中的关键.}

Ubuntu下解决解压zip文件中文文件名乱码问题

在Ubuntu下解压Windows下压缩的zip文件时,会出现解压出的带中文文件名的文件名乱码,这是因为Ubuntu和Windows默认的编码不同,Ubuntu下默认的编码是UTF-8,而Windows下默认的编码是GBK.对于这个问题,主要有以下三种解决方法: 一.命令行指定解压字符集 在Ubuntu下解压来源于Windows的zip文件,中文文件名会出现乱码问题. 出现这个问题的原因是:Windows和Ubuntu使用的默认编码不相同,而且zip文件自身却不带有任何标识其编码的信息.解决方案

解决NTKO Office中文文件名保存到服务器时出现乱码的问题

再使用NTKO office控件时,在ntko往服务器提交文件时,中文文件名会出现乱码的问题! 其实解决这个问题可以换一种思路,在ntko往服务器提交文件时英文肯定是不会出现乱码的问题的! 那么想办法把中文文件名转换成英文放到隐藏域里,然后提交到服务器时再把隐藏域的英文转换成中文就没有问题了! 接下来就简单了 把中文名进行base64编码存到隐藏域 然后服务器获取隐藏域的值,再用base64解码就能得到正确的中文文件名了!附Base64简单编码解码 1 public string EncodeB

CentOS 7 支持中文文件名显示(未实现)

版本:CentOS 7 1908 参考文档: https://jingyan.baidu.com/article/aa6a2c14a00ec00d4d19c446.html https://www.cnblogs.com/sxdcgaq8080/p/10076459.html#commentform https://www.cnblogs.com/ToBeExpert/p/9716917.html 根据以上文档,总结出以下几点是必须要满足的设置. 1.确认是否安装中文语言包 执行命令:local

[JavaEE]Get请求URI中带的中文参数在服务端乱码问题的解决方法

在Get请求中,如果请求参数中带有中文,如 http://localhost:8080/DinnerParty/shop/search?query=多伦多, 在服务端拿到的是乱码. 这是因为客户端提交过去的是UTF-8编码的数据,而服务端解析URi时可能使用的是 iso8859-1编码. 修改tomcat配置文件server.xml <Connector port="8080" protocol="HTTP/1.1"               connect

通过freemarker出word的技术解决方案_通过点击一个按钮临时实现生成一个word,解决出word时中文文件名乱码问题,解决打开出word时打开的word出现问题的问题,出图片,解决动态列表

 通过freemarker制作word比较简单 步骤:制作word模板.制作方式是:将模板word保存成为xml----在xml的word模板中添加相应的标记----将xml的word文件的后缀名改成ftl文件 详细步骤如下: 模板制作(将要动态显示的数据打上标记,这个标记是freemarker中的EL标记,要注意的是,要控制值为空的情况,下面${(site.wzmc)?default("")}标识当网站名称为空的时候显示空值,如果这里如果不做控制,在实际项目中会显示错误!) 另外

【转】C# DataTable 导出 Excel 进阶 多行表头、合并单元格、中文文件名乱码

本文原创地址:http://blog.csdn.net/ranbolwb/article/details/8083983 ,转载请保留本行. 本例子是上一篇 DataTable 导出 Excel 的进阶,除了上一篇提到的处理乱码问题,本例还添加了处理多行表头.合并单元格的功能及处理中文文件名乱码问题,应该可以满足日常开发的需要了. 废话不多说了,直接上代码: [C#] 可以写单独类 1 using System; 2 using System.Collections.Generic; 3 usi