nginx面试题网页如何显示中文

在配置nginx时常常遇到网页乱码的问题如图:
这时需要在server段里面添加两行:
default_type
&text/html&;
charset utf-8;
然后执行测试 &重启操作
#nginx 配置文件测试
service nginx reload
#nginx 服务重新加载
阅读(...) 评论()里已经说过设置方法,不过貌似很多人还是会遇到中文乱码的问题,Apache可以使用mod_encoding支持中文目录和文件,下Nginx其实不需要安装额外的组件即可支持中文文件名或中文目录,下面说一下常见的CentOS、Debian、Ubuntu Linux发行版下的设置方法和可能会遇到的问题:
设置前可以执行:locale&看一下,如果显示是en_US.UTF-8,即是正常,不用按下面的步骤设置。如果显示其他编码需要按如下步骤设置。
编辑/etc/sysconfig/i18n 文件,内容修改为:(可以使用、或,依个人口味选择)LANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16"
保存,重启系统生效,也可以编辑/etc/profile在文件末尾加入 export&LANG="en_US.UTF-8" 端口SSH客户端,重新连接一下就生效。
apt-get install -y localesdpkg-reconfigure locales
执行&dpkg-reconfigure locales后会出现如下对话框:
用向下的方向键找到en_US.UTF-8 UTF-8,按空格选择,再按回车键。
再按向下键选择en_US.UTF-8,再按回车键确认。重启系统。
编辑/etc/default/locale 文件,修改内容为(没有的话创建一个):LANG="en_US.UTF-8"LANGUAGE="en_US:en"保存,再执行:locale-gen en_US en_US.UTF-8重启系统。
执行:locale&看一下是否显示是en_US.UTF-8,如果报错,请在本文反馈。
按以上步骤设置好后即可支持中文,可以上传中文的文件或中文的目录。
可能会遇到的问题:
如果使用Winscp或Flashfxp之类的工具上传都要设置为utf-8才可以,设置步骤如下:
打开WinSCP,在登录界面中选定要登录的会话
点击旁边的"编辑"按钮
在左侧树型菜单中找到"环境"项,并打开它
在右侧中一项为"文件名UTF-8编码",选择"开启",设置完成。
FlashFXP:
打开FlashFXP,点"站点",选择"站点管理器"
点击选择要登陆的站点,在右侧点击"选项"选项卡,"字符编码" 后面的列表框里选择UTF-8,设置完成。
如果在Putty或XShell等SSH客户端下显示乱码,也是需要修改字符编码为UTF-8的。
打开Putty,在登录会话界面中选定Default Settings
再点击左侧树形菜单中的"Window",再点"Translation",中文版的话对应的是"窗口","转换"
在右侧界面中有一项"Remote character set:",中文版的是"假定接收数据的字符集",在下拉列表中选择"UTF-8",设置完成。
打开XShell,在会话列表要登录的会话上右击,选择"Properties"
在点击"Terminal",在Translation里有个Encoding的下拉列表框,选择"UTF-8",设置完成,简单点的设置方法,直接点上面工具栏里面的蓝绿色的圆球,选择"UTF-8"。
说了这么多,其实就是一点,编码一致,编码不一致就会出现乱码。
如果是在没有更改编码前上传的文件,设置好后依然会是乱码的,建议重新上传一下文件。如果没有原来文件的备份可以使用下面命令进行转换:for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done&。
其中*.html为要转换的文件类型,也可以更换为*.txt,*.rar 主要是看你是什么文件了,里面的GBK为源文件的编码类型,如果不知道源文件的编码类型可以执行:file -bi 文件名&。
如果想在Windows下改的话其实也是可以的Editplus就有批量修改文件编码的功能,其他的软件可能也有此类功能,可以自行研究一下。
如果是目录的话,目前好像是没有办法进行转换。
还有一个问题,如果是html之类的网页文件,如果原来是网页内容是gb2312或类似的非utf-8的编码,先要将网页里面的charset 改为charset=utf-8,再转换文件编码,否则网页还是会乱码的。
阅读(...) 评论()如何让Nginx支持中文文件名具体设置步骤_百度知道
如何让Nginx支持中文文件名具体设置步骤
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
iamdebugman
电脑类认证行家
iamdebugman
电脑类行家
采纳数:33576
获赞数:50640
学的虽是计算机网络,但是读的书很多也很杂也是一知半解,所以到现在我也不知道我有啥能力!只知道努力!
首先得让你的系统有中语语言包:设置前可以执行:locale 看一下,如果显示是en_US.UTF-8,即是正常,不用按下面的步骤设置。如果显示其他编码需要按如下步骤设置。CentOS编辑/etc/sysconfig/i18n 文件,内容修改为:(可以使用vi、nano或winscp图形管理软件,依个人口味选择)LANG=&en_US.UTF-8&SYSFONT=&latarcyrheb-sun16&保存,重启系统。Debianapt-get install -y localesdpkg-reconfigure locales执行dpkg-reconfigure locales后会出现如下对话框:用向下的方向键找到en_US.UTF-8 UTF-8,按空格选择,再按回车键。再按向下键选择en_US.UTF-8,再按回车键确认,重启系统。Ubuntu编辑/etc/default/locale文件,修改内容为(没有的话创建一个):LANG=&en_US.UTF-8&LANGUAGE=&en_US:en&保存,再执行:locale-gen en_US en_US.UTF-8重启系统。执行:locale 看一下是否显示是en_US.UTF-8,如果报错,请在本文反馈。按以上步骤设置好后即可支持中文,可以上传中文的文件或中文的目录。在nginx.conf文件里配置的字符集也是utf-8server {listen 80;server_name test.root /index index.html index.charset utf-8;……ay%PM'G+U0客户端用的是secureCRT,用的字符集改为utf-8,用uft-8后再用rz上传文件,在ie下中文可以正常显示了。注意:如果中文文件名是gb2312的需要转换成utf-8.(注是文件名,不是文件内容)。使用convmv转换,(如果找不到这个命令,光盘中有这个包 convmv-1.10-1.el5.noarch.rpm)convmv -fGBK -tUTF8 -r--notesttarget其中-f是源编码,-t是目标编码,-r是递归处理目录,–notest是不移动,实际上对文件进行改名(actually do rename the files),target是目标目录。其余参数可以参考man或者-h。如果是在没有更改编码前上传的文件,设置好后依然会是乱码的,建议重新上传一下文件。如果没有原来文件的备份可以使用下面命令进行转换:for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done 。其中*.html为要转换的文件类型,也可以更换为*.txt,*.rar 主要是看你是什么文件了,里面的GBK为源文件的编码类型,如果不知道源文件的编码类型可以执行:file -bi 文件名 。如果想在Windows下改的话其实也是可以的Editplus就有批量修改文件编码的功能,其他的软件可能也有此类功能,可以自行研究一下。如果是目录的话,目前好像是没有办法进行转换。还有一个问题,如果是html之类的网页文件,如果原来是网页内容是gb2312或类似的非utf-8的编码,先要将网页里面的charset 改为charset=utf-8,再转换文件编码,否则网页还是会乱码的。convmv 可以从 下载,wget /convmv-1.14.tar.gztar -zxvf convmv-1.14.tar.gzcd convmv-1.14如:./convmv -f GB2312 -t UTF-8 -r --nosmart --notest userfiles/*.*以上表示 userfiles下的所有文件的文件名由GB2312转换为UTF-8对于文件内容的字符集转换可以使用iconv
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。求助:nginx的中文字符在传递到gbk页面显示乱码怎么解决_nginx吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:2,306贴子:
求助:nginx的中文字符在传递到gbk页面显示乱码怎么解决
我在nginx里提取url的信息,url中有中文字符,这个中文字符通过参数传递到gbk页面的时候显示的是乱码。因为rewrite的目标网站不是我能控制的,我想把这个参数在nginx里转成gbk,该怎么处理这个问题呢?我就是不明白了,比如我的url 是 我爱wordpress
我将这个我爱wordpress在nginx里读出后,rewrite到其他网站,比如baidu,结果这个字符在百度搜索框中乱码,因为baidu用的
是gbk编码,我是否可以在nginx里完成从utf8到gbk的转码,使得提供给目标网站的字符与目标网站的编码一致。
nginx:如果要在不同的云之间进行管理,监控或安全运维,可以自由注册并使用行云管家.云管理领域优秀且全面的工具集,多云管理,多云安全,多云成本,多云监控,多云自动化.nginx
我也碰到了这样的问题,我接收的时候把他转成gbk 汉字可以了 可是汉字的url编码却不能访问了,很郁闷。
其实最好的办法就是程序到数据全部使用utf-8我就是这样.因为受不了gbk和utf-8的关系.
贴吧热议榜
使用签名档&&
保存至快速回贴开启Nginx的目录文件列表功能,目录索引(支持中文)。 – 方舟笔记
2018年八月
12131415161718
19202122232425
262728293031

我要回帖

更多关于 网页nginx 的文章

 

随机推荐