php的文件名加不了中文字吗
因为中文会被URL编码发送,到服务器端的时候虽然会解码,但是如果和你的编码不一致,就解不出来了。
简单的说,URL中的中文 ,在常见的浏览器中,默认会以UTF-8编码进行编码后发送到服务器端!而在中文 windows环境的服务器中,解码URL的时候,却用的是gb2312编码进行解码的,这样就导致了没法得到你在地址栏里输入的中文原文!
所以就会提示找不到文件名了。
如果一定要用中文 ,解决办法,仅限你本地浏览的解决办法
在浏览器中,打开“internet选项“菜单,选择”高级“,然后找到 “发送utf-8 URL“,把前面的钩去掉。然后确认。
再重启浏览器。这样地址栏里的中文就会默认以gb2312编码 进行发送,这样服务器端就能正确找到该中文文件名的文件了
之前网页的chartset用的是utf-8,文件也用utf-8,然后用fopen()创建一个中文文件名的文件时问题就出来了,文件名都是乱码!
查看了很多文档试了不少方法都解决不了,本来想着用别的方法绕过这个问题,忽然脑子里闪过Windows默认的文字编码是ansi,然后再 baidu了一下,证实了这点,所以我的网页也应该是ansi编码才能使创建的文件名不会是乱码。
接着就着手验证,把网页都用ansi保存,去掉chartset语句,果然ok了,但是网页的内容就成乱码了,后来想起,这个网页还include 了别的网页,把include的网页也改成ansi保存,哈哈万事ok
编程这个工作真的很靠积累,如果我以前没看过Windows默认编码是ansi,那这个问题就不知何年何月才能解决了
ps:< meta content ="text/html; charset=utf-8" http -equiv ="Content-type" > 这个meta标记一定要放在<title></title>之前才有效的
后来又想到了一个更好的解决方法,网页还是用utf-8编码和保存,只是fopen()里的文件名参 数单独给它编下码就行,php有iconv() 这个改换编码的程序,把utf-8转成 gb2312就可以避免中文文件名为乱码了
以上就是php的文件名加不了中文字吗的详细内容,更多请关注其它相关文章!
推荐阅读
-
javascript - php 有什么函数是可以根据文件名称,来获取这个文件的全路径的吗?或者js 怎么获取文件的全路径?
-
php上传文件名中包含中文字符的附件
-
javascript - php 有什么函数是可以根据文件名称,来获取这个文件的全路径的吗?或者js 怎么获取文件的全路径?
-
codeigniter - php+mysql的网站要加一个博客功能有什么教程或者开源代码推荐吗
-
codeigniter - php+mysql的网站要加一个博客功能有什么教程或者开源代码推荐吗
-
php的文件名加不了中文字吗
-
php的文件名加不了中文字吗
-
还不了解PHP中的include和require吗,看看这篇文章吧!
-
还不了解PHP中的include和require吗,看看这篇文章吧!