Tomcat乱码问题 catalina.bat设置为UTF-8 控制台出现乱码

yyil80 2017-07-06 01:50:41
求助:
1、catalina.bat中必须设置为UTF-8,如果我不设置为UTF-8,对方接收到的就是乱码了,尝试过各种UTF-8的调试,都无解,最后还是只能在catalina.bat的set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF-8" ,加上UTF-8问题就可以解决了

HttpStatus hs = new HttpClient().new HttpStatus();
File file = File.createTempFile("tempfile", ".json");
BufferedWriter out = new BufferedWriter(new FileWriter(file));
out.write(xml);
out.close();
FileBody bin = null;

@SuppressWarnings("resource")
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
if (xml != null) {
bin = new FileBody(file);
}
MultipartEntity reqEntity = new MultipartEntity();
for (Map.Entry<String, String> entry : param.entrySet()) {
reqEntity.addPart(entry.getKey(), new StringBody(entry.getValue()));
}
reqEntity.addPart("data", bin);
httppost.setEntity(reqEntity);

HttpResponse response = httpclient.execute(httppost);

hs.setStatusCode("" + response.getStatusLine().getStatusCode());
System.out.println("statusCode is " + response.getStatusLine().getStatusCode());
logger.info("statusCode is " + response.getStatusLine().getStatusCode());
HttpEntity resEntity = response.getEntity();


或者在IDEA编译器中的VM options:设置-Dfile.encoding=UTF-8,问题也可以解决


2、在service.xml中,加上UTF-8也无用,依旧乱码


<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8433" URIEncoding="UTF-8" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8433" URIEncoding="UTF-8"/>



现在的问题是:我在catalina.bat中加上UTF-8后,程序上乱码问题解决了,但是在Tomcat的控制台上就出现了乱码

大神们,求解
...全文
5164 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
z_c_f 2018-12-29
  • 打赏
  • 举报
回复
1.右键->属性->查看控制台信息,若发现当前代码页那项为gbk,进行下一步
2.打开注册表,找到HKEY_CURRENT_USER→Console→Tomcat,若没有则创建Tomact(也有可能是改了tomcat的标题),找到CodePage项,没有则再创建,设置值为十进制的65001,然后重启tomcat就可以了。
参考:https://blog.csdn.net/weixin_41271363/article/details/80459856
赵益达儿 2018-04-13
  • 打赏
  • 举报
回复
怎么解决的啊。0-0 楼主呢?
wmxzuowei 2018-01-29
  • 打赏
  • 举报
回复
将startup.bat 最后一行的start 改为run,然后修改cmd窗口的编码方式为utf-8,再次启动就ok了 cmd命令的修改方式为:chcp 65001 然后选择对应的字体,这个具体百度。
weixin_40415046 2018-01-26
  • 打赏
  • 举报
回复
一样的问题,解决了吗
qq_27301375 2017-10-25
  • 打赏
  • 举报
回复
大兄弟,遇见一模一样的问题。网上的方法都不靠谱,请问能分享一下解决方案吗
qq_28826425 2017-08-18
  • 打赏
  • 举报
回复
楼主,我也遇到这个问题了,解决了吗,求解
yyil80 2017-07-06
  • 打赏
  • 举报
回复
引用 4 楼 qq_34354426 的回复:
String newString= new String(str.getBytes("ISO8859-1"),"utf-8"),
谢谢你的回答,但不是我想要的结果
「已注销」 2017-07-06
  • 打赏
  • 举报
回复
String newString= new String(str.getBytes("ISO8859-1"),"utf-8"),
「已注销」 2017-07-06
  • 打赏
  • 举报
回复
发错了,,111111111
「已注销」 2017-07-06
  • 打赏
  • 举报
回复
String s_utf8 = new String(b_utf8,"UTF-8");
yyil80 2017-07-06
  • 打赏
  • 举报
回复
大神们,有没有知道的呢?求帮助

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧