nginx 共享目录(autoindex)中文显示问号及乱码问题解决

        由于要共享一些文件,但是又不需要用户上传内容,所以就没用ftp。直接开了个nginx,然后配置一个目录autoindex,别人就可以愉快的浏览这个目录的内容下载了。

        但是遇到了一个问题,就是中文一直显示问号。使用了百度上别人的建议,增加编码设置:

        charset gbk,utf-8;

        可是一直都没任何作用,还是显示问号。

        思考良久,应该不是nginx配置的问题了,因为很多地方都说这样配置就可以显示中文了。然后我想到会不会是系统编码问题呢?我这台服务器默认语言是英文的。使用 chcp命令查了一下系统编码,显示437。果真不太对头,一般正常能显示中文的是936。

C:\Users\Administrator>chcp
活动代码页: 936

然后就开始改系统编码的历程了

第一步,修改系统语言:控制面板->时钟、语言 设置 -> 语言 -> 添加语言,添加一个中文,把系统改为中文显示

nginx 共享目录(autoindex)中文显示问号及乱码问题解决

nginx 共享目录(autoindex)中文显示问号及乱码问题解决

回头去看看nginx,没效果。

继续第二步,更改日期、时间、数字格式

nginx 共享目录(autoindex)中文显示问号及乱码问题解决

将格式,和位置标签都改为中文简体。

nginx 共享目录(autoindex)中文显示问号及乱码问题解决nginx 共享目录(autoindex)中文显示问号及乱码问题解决

回头去看看nginx,还是没效果。

最后仔细查看了,看还有哪里漏了没,终于在管理标签里点开更改系统区域设置,设置成中文简体,然后重启系统。

nginx 共享目录(autoindex)中文显示问号及乱码问题解决

终于发现生效了!!!chcp查看结果也是936了。

nginx 共享目录(autoindex)中文显示问号及乱码问题解决

 

写在最后:虽然中文显示是正常了,但是**的,一点还是报错,乱码或者404。没办法直接点击下载中文名文件,或者浏览中文名目录。

中文名文件下载可以通过 复制文件名,然后贴在浏览器url后面,就可以下载下来了,中文名目录是真的无法浏览!!!

原因是,windows服务器中文是gbk编码,nginx的这种页面的href就是用gbk进行urlencode的,然后一般浏览器都是使用utf-8的,当然就没法访问了。