当前位置: 首页 > news >正文

外置Tomcat启动Springboot项目后,请求参数中文乱码的问题解决 - yjry

首先按照常规的排查流程逐个进行配置,都是无效果的:

1、检查了tomcat的conf/server.xml里Connector标签有无配置URIEncoding="UTF-8",添加了配置,无效;

2、tomcat/bin/catalina.bat,添加了JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"配置,无效;

3、tomcat/conf/web.xml,添加filter过滤器,无效;

4、代码里自定义过滤器,强行设置请求为UTF-8,无效。

结合日志打印,发现请求的编码格式确实是UTF-8,但是中文就是乱码。。。于是怀疑是服务器的配置问题,终于给我查出来了。

Linux 系统的 Locale 决定了软件运行时的语言环境、地域文化习惯和字符编码设置,直接影响着界面语言、时间/日期/货币格式、以及最重要的字符显示与处理。

查询服务器的locale,发现输出均为POSIX,经查询得出该配置为服务器最小化支持的字符集,也就无法识别中文字符。

于是尝试修改服务器的locale(ubuntu环境):

1、使用sudo locale-gen en_US.UTF-8,生成UTF locale字符集
2、修改/etc/default/locale文件,添加一行echo 'LANG="en_US.UTF-8"' | sudo tee /etc/default/locale
3、更新系统环境  source /etc/default/locale
4、重新建立ssh会话连接,检查locale是否变为en_US.UTF-8,正常情况下输出均为en_US.UTF-8
5、重启tomcat

重新验证请求,发现中文参数终于可以正常处理了。

http://www.hskmm.com/?act=detail&tid=6158

相关文章:

  • gradle项目多模块中主模块加载子模块中的sqlmapper文件方法
  • MCP - 使用 fastmcp 编写 Client 调用 MCP Serverr - Streamable HTTP (四)
  • 全面理解MySQL架构
  • Figma EX 125.7.5 UI原型设计
  • 基于WebSocket的命令与控制工具WSC2详解
  • LocalDateTime节日和平日在时间占比计算方法
  • JSON字符串转换List对象列表 JSONArray toJavaList
  • vue3 使用 docx-preview 预览 Word文档
  • 数据库原理-第三章——SQL
  • 啥是CPU
  • C# Avalonia 15- Animation- CodeAnimation
  • ubuntu 18.04安装mysql 8.0.41
  • Topaz Photo AI Pro 4.0.4 AI图片智能降噪(win版)
  • 阿里云基础设施 AI Tech Day AI 原生,智构未来——AI 原生架构与企业实践专场
  • 实用指南:LINUX910 CENTOS8 新建虚拟机;重设root密码/时间同步
  • 零基础学习PYthon记录
  • C++ std::unordered_set
  • 如何将一个项目同时提交到GitHub和Gitee(码云)上
  • 基于Matlab的LeNet-5车牌字符识别系统实现
  • MATLAB的交通标志牌识别实现
  • Python常见的数据结构和代码示例
  • Grafana 中文入门教程 | 构建你的第一个仪表盘
  • Gitee DevOps:中国开发者效率革命的数字引擎
  • Topaz Photo AI Pro 4.0.4 AI图片智能降噪
  • 易基因:Nat Genet/IF29:董朝斌团队ChIP-seq等揭示作物株型穗型发育调控新机制 助力表观遗传育种驯化改良(顶刊佳作)
  • Edge浏览器网页长截图
  • Python TensorFlow的CNN-LSTM-GRU集成模型在边缘物联网数据IoT电动汽车充电站入侵检测应用
  • C++多线程编程—线程控制、同步与互斥详解
  • MySQL启动失败:mysqld.log Permis 报错处理.250916
  • 源码管理—密钥硬编码问题