myeclipse10 控制台乱码问题 新解

在开发Struts项目时,碰到了tomcat控制台输出参数乱码问题,前提是控制台本身的编码支持中文,网上也给出了很多方案,根据我的实践,这些方案并不能解决我的问题。下面给出网上的方案及我的方案:

重要的原因是Struts默认编码为ISO-8859-1,如果java文件中设置编码为ISO-8859-1即可解决问题,终于搞定了,java文件接收参数示例:

new String(dynaForm.getString("title").getBytes("ISO-8859-1"));

我的解决方案比较简单针对Struts项目来说最有效:

以上的编码都不用改,在网页中定义好显示编码之后,在xxForm.java文件里的reset函数中按如下代码设置,原因是无论网页上是什么编码,在reset中都被替换为JVM的默认编码,所以无论怎么改都有可能出现代码不一致的现象,因此只需要将网页中的编码和此处的编码一致,即可很容易统一编码。我的配置是GBK,可以更改为你需要的任何编码都没有问题。当然可以用filter规划你的代码。

try {
request.setCharacterEncoding("GBK");

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();
}

}

网上的方案:
  1) 更改 D:\Tomcat\conf\server.xml,指定浏览器的编码格式为“简体中文”:
  方法是找到 server.xml 中的
    <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />
  可以这样验证你的更改是否成功:在更改前,在你出现乱码的页面的IE浏览器,点击菜单“查看|编码”,会发现“西欧(ISO)”处于选中状态。而更改后,点击菜单“查看|编码”,会发现“简体中文(GB2312)”处于选中状态。
    2)如果上述方法没有解决问题,可以试着改下myeclipse字符集
1.Windows->Preferences->general->Workspace->Text file encoding->Other框中的Text fileencoding改为UTF-8。 
2.Windows->Preferences->General->Editors->TextEditors->Spelling Encoding 改为UTF-8 
3.Servers窗口中,tomcat服务器右击->runconfiguration->common->encoding 设置为UTF-8
    3)
Perperties选项,在弹出的窗口右下边有一个"Text file encoding"选项,选择下边的Other选项,可以修改该文件的编码格式,如UTF-8\GB2312等,这样,在我们编写Java文件时,输入的中文就不会是乱码了。
不过,对于输出到控制台的乱码,上述方法则不能解决。这种乱码是属于在JavaVM上运行时,javaVm的默认输出格式与我们希望的格式相左造成的。这时,必须要对javaVM的输出格式进行设置。具体操作如下图
1.JPG
 这里 还可以选择,Open Run Dialog...效果是一样的,
MyEclipse(Eclipse)控制台中的中文输出乱码问题 

接下来:
1.JPG
 
这里有两个需要配置的地方
1.在VM arguments中添加-Dfile.encoding=GB2312
3.jpg
2.在Console encoding中选择GB2312

3.jpg

 设置好以后,点击apply,再run或者debug,控制台就可以输出中文,而不是乱码(注意:如果在VM arguments中添加-Dfile.encoding=GB2312,而后边选择可以是GBP312,也可以是GBK或者utf-8,本人已经试过。我猜想,只是要支持中文格式的编码集,这里都可以通用吧。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值