栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux 或 windows下nginx文件服务器中文乱码问题已解决 failed (1113: No mapping for the Unicode character exists in the

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux 或 windows下nginx文件服务器中文乱码问题已解决 failed (1113: No mapping for the Unicode character exists in the

linux 或 windows下nginx文件服务器中文乱码问题已解决 failed (1113: No mapping for the Unicode character exists in the target multi-byte code page)

如下是正文

1 问题描述
  • nginx作为文件服务器,中文乱码
  • logs/error.log 日志如下

错误图片如下:

error.log: failed (1113: No mapping for the Unicode character exists in the target multi-byte code page)

2 问题演示
  • 当nginx.conf 字符集为utf8时 web服务显示乱码 点击访问中文目录 出现小节1的错误

  • 当 nginx.conf 字符集为gbk时 web服务显示不乱码 但点击访问中文目录 也出现小节1的错误

  • 我们对请求的uri进行解码, 确实是gbk 编码 , 换成utf8会乱码. 不过请注意,好多uri解码网站上都是默认按照utf8进行解码的 ,并没有字符编码的选项

3 总结问题产生原因

以windows10为例 ,它的磁盘路径默认编码为gbk ,而一般对uri编码的解码都使用utf8, nginx应该是默认用utf8对uri进行解码,导致字符集不匹配,nginx在解析请求时找不到路径

4 解决方案
  • 推荐的方案是修改windows和linux文件名的默认编码

  • 注意nginx 的解压后的文件夹不要放在中文路径下

  • windows下

  • 搜索语言设置

  • 管理语言设置

  • 点击更改系统区域设置

  • 勾选utf-8 确定, 并同意重启, 不同意不生效

  • 将nginx的字符编码配置修改回 utf-8 , 其他不做变化 , cmd 运行 nginx -s reload重载配置 ,刷新页面即可访问中文路径.
    注意此时的请求路径提示也变了

  • linux下

    • vi /etc/sysconfig/i18n 修改默认字符集为utf8即可
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/866062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号