之前便宜买的hostable的CPanel,你懂的,过了一年多了,都没怎么用过,本着浪费就是可耻的态度往上面传了一些小说什么的。传上去以后发现居然是乱码的。
这肯定是编码出了问题。于是我整个研究了一下,延伸出了这篇文章,当然老鸟直接忽略好了。
我直接传上去的,也没注意,怎么办呢,进到cPanel里面去显示的也是乱码。
这就是我们的GB2312和UTF-8之间的问题了。在大陆和新加坡用的都是简体中文,大陆制定了GB2312简体中文标准,一些专门针对国内的软件做出来就是这个标准,但是国际上解析所有的字符都是用的UTF-8标准,这就是为啥会显示乱码的原因了,正因为这个所以Discuz!为啥会出两个版本了。
传了这么多,总该让他显示正常吧。所以我们来修改.htaccess文件,添加如下代码:
IndexOptions Charset=GB2312
这次终于网页显示正常了。但是cPanel文件管理器还是显示错误。而且下载的时候提示406,因为服务器处理不了这个异常编码。
所以这个是治标不治本的方法,要想整个变过来可用要设置httd文件,这是我们的cPanel用户接触不到的,所以只能放弃。
于是只能从我们上传上面下手。我用的是FlashFXP软件,所以要在站点管理器中设置。在选项中自负编码设置成UTF-8。
这样上传上去就可以正常下载了,而且Chrome可以识别中文路径,但是放到我刚才设置的.htaccess文件中会显示乱码。
cPanel中正常了,于是我去我的VPS上试试。传上去一访问就跳出个404。。真是郁闷。
我用的是LNMP一键安装包设置的,于是我查了相关资料,发现Nginx默认是关闭autoindex目录浏览的,要在nginx.conf加参数
autoindex? on;
autoindex_exact_size off;
autoindex_localtime on;
autoindex_exact_size off;
默认为on,显示出文件的确切大小,单位是bytes。
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime on;
默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间
填写到server{}的标注里面就可以了。
本文作者为Nicky,转载请注明。
感谢,解决了我今天遇到的问题