IDEA tomcat输出乱码问题

    在学习JAVA web的时候碰到了tomcat在IDEA中启动乱码的问题

    网上查到一篇文章讲IDEA乱码问题:IDEA乱码问题,原因&解决方式_intellij-idea_sup_meiko-开放原子开发者工作坊根据这篇文章成功解决了tomcat乱码的问题。

    通过下面的代码可以知道控制台输出的解码类型

System.out.println(System.getProperty("file.encoding"));

 我的电脑显示的是UTF-8,所以控制台默认的解码类型是UTF-8。

然后对照上面的表格(可以打印输出 0信1息2信息3),然后对照乱码的字体,说明tomcat控制台的编码方式是GBK。tomcat路径下, \conf\logging.properties配置, 和控制台有关的是Handler:java.util.logging.ConsoleHandler.encoding。

 把上面java.util.logging.ConsoleHandler.encoding = GBK改成java.util.logging.ConsoleHandler.encoding = UTF-8就成功解决乱码问题了。

    在学习Servlet的时候又碰到了乱码问题,这次是访问网页时用get方式获取请求时的字符串,网址?后面设置的请求头为中文时输出的就是乱码,甚至用输出语句输出中文时也是乱码。原因是JVM默认的文件编码是 GBK,将run->Edit Configurations->VM options添加参数:                         -Dfile.encoding=UTF-8。乱码问题就解决了。

    但是问题是,我在之前建立的JAVA类项目中并没有设置VM options的参数,但是控制台依旧能正常输出显示中文,这可能是因为IDEA 使用了 UTF-8 编码处理控制台输出,但是JAVA web项目并没有。

    而如果用post方式获取请求时的字符串,需要在代码中加入来解决乱码问题。

req.setCharacterEncoding("UTF-8");

    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值