随笔 | Tomcat:续 - 从 Linux 迁移到 Windows 编码问题彻底解决

本贴最后更新于 1765 天前,其中的信息可能已经渤澥桑田

前言

继上条博文 将 Tomcat、MySQL 从 Linux 迁移到 Windows 的心路历程(干货):令人恐惧的字符编码 后,我发现控制台随后仍出现了一些乱码,并不受到在 conf/logging.properties 文件修改 GBK 后的影响,它输出的仍是 UTF-8,导致控制台仍然蓝屏。

排查方向

这次的错误排查,我换了个方向,上一次是针对修改 Tomcat 的配置,这一次是在不变动 Tomcat 配置的情况下,让 Windows 适应其配置

解决问题

控制台编码

了解系统的朋友可能都知道,Windows 的控制台默认使用 GBK 编码,而类 Unix 系统使用的大都是 UTF-8 编码,这也就导致了中文乱码的发生。

那么如何将 Windows 的控制台修改为 UTF-8 编码呢?

引用 https://blog.csdn.net/qq_34273222/article/details/83508671

在运行中通过regedit进入注册表  
找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor  
新建-字符串值,命名autorun,右键修改:数值数据填写 “chcp 65001”,确定并重启计算机。

在设置后,每个命令行执行前都会执行一次 chcp 65001,将默认的编码修改为 UTF-8

本窗口运行

但我发现,Tomcat 的 startup.bat 运行后,会额外弹出一个窗口,这个窗口使用 Java 控制台来运行 Tomcat,而不是使用系统的控制台,那么我们需要修改一下 startup.bat 中的配置让 Tomcat 在当前控制台中运行:

引用 https://www.cnblogs.com/javaeye235/p/5552190.html

window下tomcat在当前窗口启动,不在一个新的窗口启动  
startup.bat  
中最下几行  
goto setArgs  
:doneSetArgs  
call "%EXECUTABLE%" start %CMD_LINE_ARGS%  
:end  
----------  
把start改为run  
call "%EXECUTABLE%" run %CMD_LINE_ARGS%

后语

再次运行 Tomcat,编码问题成功解决,不需要配置繁琐的配置文件了。

  • 笔记

    好记性不如烂笔头。

    304 引用 • 777 回帖
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 3 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...