专注、交流、分享
云服务器技术博客

那些年踩过的坑——服务器中文路径

宝塔服务器面板,一键全能部署及管理!

领取¥3188礼包

本文转载,作者住在回忆里的那个人

从11年学编程至今已有七个年头,其实有时候也很后悔选择这个专业。整日和电脑相偎相依,人的思维和沟通能力也趋向机器,和别人聊天也不知道怎么开口。算法的一个评定标准就是以最少的语句实现所需的功能,但和别人聊天则不能这样,太直接简单会让人变得无趣。可早已习惯了简单明了的方式,还是老老实实地“潜水”吧。学习编程还有一个特别严重的问题,就是总感觉智商不够用。面对一个一个接踵而来的坑,费了好大的力气从这坑跳出来,却发现又落入另一个坑中。编程就是一个不断跳坑的过程,当然,跳得坑越多,水平也自然而然地有所提升。

坑是跳不完的,那么年过去了,慢慢就释然了,不再像最初的时候,为了搞懂一个问题而废寝忘食,钻牛角尖,不撞南墙不回头。现在比较淡然了,也慢慢开始试着换个角度去思考问题,条条大路通罗马,选择道路并不是说非要最短的路才是最好的、唯一的,有时候选择一条适合自己的路才是最重要的。那些年踩过了很多坑,被逼疯过,也曾痴笑过。踩得多了,也就成长了。这里简单记下来一些坑,纪念也好,分享也罢,总之从坑中跳出了,就不能再犯类似的错误了。生命有限,而坑无限,人不应该把宝贵的时间浪费在一次一次犯错上。且行且珍惜。

在做网站服务器架构的时候,选择中文路径可以说是开发者的大忌,因为会遇到各种无厘头的错误,如果选择了就要做好跳进坑的准备。举个例子,URL中的中文,在常见的浏览器中,默认会以UTF-8编码进行编码后发送到服务器端,而在中文windows环境的服务器上会用gb2312编码进行解码,这就可能导致获取中文错误。此外,有些php服务器是不支持中文文件夹名,比如wamp搭建的php运行环境,就不支持访问中文的文件名。其实,这并不意味着不能使用中文路径,而是使用的时候要保证你的编码方式要和你服务器所在系统的编码方式一致,但客户端编码,服务器端解码,别人的编码不一定适合自己。例如对于URL中的中文请求,在PHP中提供了iconv(“utf-8″,”gbk”,$_GET[“url”])对URL进行重写,配置.htaccess文件即可。亲测了这种方法,确实支持了部分中文,本以为完美收工,没想到在使用阶段又发现了一个奇葩的问题,当URL的中文中包含“关”字的时候,访问其目录下的.php文件时就会提示找不到文件的错误。

尝试了一些解决方法,也未果。服务器端将其打印到也面上了都很正常,但是却提示没有此文件,但其他汉字却又没问题。折腾了好久,最后的解决则是采用参数传递的方法,无非就是把URL中的中文从中间位置挪到了尾部,从整体处理,到单一处理,但这样一转换却又可以支持“关”字了。虽然跳出了这个坑,但仍不确定自己还会不会再遇见其它的坑。吃一堑涨一智,下一次绝不采用中文路径了,英文路径因为不需要编码,所以就不会存在乱码的问题。

选择一些东西,就必然要放弃另一些东西。决定了非要这样做,也就意味着要为之做出付出。世界上没有平白无故地收获,能量尚且遵循守恒,人亦如是。

那些年踩过的坑——服务器中文路径

一坑还比一坑坑

赞(0)
未经允许不得转载:领网云服务器技术博客 » 那些年踩过的坑——服务器中文路径

中国领先的企业级云服务器提供商!

关于我们联系我们