通过 tomcat 搭建了一个简单的 web 项目,但是访问页面时,页面输入框的占位符(placeholder)出现中文乱码。
通过浏览器的开发工具排查问题发现 JS 源文件是乱码,但是实际部署的 JS 不是乱码。这就是导致前端页面出现乱码的原因,如下图:
上面代码中,通过 JS 设置前端输入框占位符的中文提示信息,导致中文乱码,JS 中的中文乱码注释并不影响页面。
打开 tomcat 的 catalina.bat / catalina.sh 脚本,向 JAVA_OPTS 添加 -Dfile.encoding=UTF-8 配置。
修改内容如下:
.... rem Example (all one line) rem set LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" rem rem TITLE (Optional) Specify the title of Tomcat window. The default rem TITLE is Tomcat if it's not specified. rem Example (all one line) rem set TITLE=Tomcat.Cluster#1.Server#1 [%DATE% %TIME%] rem --------------------------------------------------------------------------- setlocal rem 这里设置文件编码 set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8" rem Suppress Terminate batch job on CTRL+C ...