解决window的bat脚本执行出现中文乱码的问题

本文探讨了在Windows环境下,使用批处理文件(.bat)时遇到的中文乱码问题。详细解释了批处理文件的编码特性,并提供了两种解决方案:一是使用记事本正确保存编码;二是通过代码设置执行时的编码格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

window下通过新建txt文件然后改成.bat的文件,输入内容后,执行出现中文乱码?
原因:


批处理文件,是以ANSI编码方式。若以别的方式(如UTF-8)编辑了批处理,转换成ANSI格式即可,正常创建的文件的格式都是utf-8的。

解决:
1.使用windows自带的记事本编辑,然后另存的时候,可选择编码方式即可。
2.在代码里修改执行时的编码格式:

@echo off
REM 后续命令使用的是:UTF-8编码
chcp 65001
echo 中文测试
pause


小知识了解一下:

doc 代码页(自行百度):
chcp 65001  就是换成UTF-8代码页
chcp 936 可以换回默认的GBK
chcp 437 是美国英语  

 

cmd   脚本文件的描述是 “windows nt命令脚本” (年轻人,本是多)
bat   脚本文件的描述是 “ms dos批处理文件”   (上年纪的,办事牢靠)


--------------------- 
原文:https://blog.youkuaiyun.com/u013948858/article/details/81036079 
 

### Windows Server环境下Tomcat中文乱码问题解决方案 在Windows Server环境中部署Tomcat时遇到的中文乱码问题是由于Tomcat默认采用UTF-8编Windows系统的默认字符集为GBK造成的不兼容所引起[^1]。为了使两者之间能够正常处理中文字符,可以通过调整Tomcat的相关配置来实现。 #### 修改`server.xml`文件以支持URI编 对于URL路径中的中文参数或静态资源名称可能出现的乱码情况,在`<TOMCAT_HOME>/conf/server.xml`中定位到定义HTTP连接器的部分,并添加属性`URIEncoding="UTF-8"`: ```xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> ``` 这一步骤确保了通过浏览器访问Web应用时传递给服务器端的数据能被正确解析[^4]。 #### 设置日志记录使用的字符编 如果发现Tomcat的日志文件里存在乱码,则需编辑位于相同目录下的`logging.properties`文件,指定合适的输出编格式。具体操作如下:打开此文件并查找涉及ConsoleHandler和FileHandler的地方,为其增加encoding参数设定为UTF-8: ```properties handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler ... 1catalina.org.apache.juli.FileHandler.encoding = UTF-8 java.util.logging.ConsoleHandler.encoding = UTF-8 ``` 上述更改有助于防止控制台打印以及写入磁盘的日志信息出现乱码现象。 #### 启动脚本中强制Java虚拟机使用特定编 为了让整个应用程序运行期间都保持一致性的字符编环境,可以在启动命令前加入环境变量声明语句,告诉JVM本次会话应该遵循哪种编标准。例如,在批处理(.bat)文件开头处追加一行代: ```batch set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8 ``` 这样做不仅解决了前端展示层面的问题,还保障后台逻辑层面对字符串的操作不会因为内部表示差异而导致意外错误[^5]。 完成以上几项改动后记得保存所有已编辑过的文档,并重新启动Tomcat服务以便让新的设置生效。经过这些步骤之后,应当能够在很大程度上缓解甚至彻底消除Windows Server平台上由不同操作系统间编习惯所带来的困扰。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值