`
dennisbing
  • 浏览: 160850 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts1 处理中文乱码《续》

阅读更多
㈢国际化资源文件乱码

     ①利用JDK的native2ascii工具进行编码转换

国际化问题,主要是为了处理文件在浏览器上的显示问题,还是以登录界面来说,比如在中文浏览器上,我们要看到中文显示,对应在英文浏览器上要显示英文。那么我们在登录那个界面处理上,就不能直接写上我们的“用户名”“密码”等标识了。就要用标记转换输出了,修改为:

<bean:message key="example.login.username"/> 
<bean:message key="example.login.username"/>

  再者,打开项目下的资源配置文件ApplicationResources.properties,依据上面所写key值,设定成我们要的默认值(显示英文),比如

#Resource for Parameter 'com.v512.example.struts.ApplicationResources
#Project webexample2
example.login.username=username
example.login.password=password

现在我们动手新建一个资源文件,让其能显示中文,直接Ctrl+C,Ctrl+V。改名为ApplicationResources_zh.properties,代码如下:
     
#Resource for Parameter 'com.v512.example.struts.ApplicationResources
#Project webexample2
example.login.username=用户名
example.login.password=密码

但保存,myeclipse会报错,这时我们需要修改资源文件的编码格式。Windons---->Preferences---->Content Type------>Text----->JavaPropertiesFile,把其Default encoding改为“utf-8”,按“update”更新。这样就能进行保存了。但是当我们进行验证会不是成功时,仍然给我们的是乱码。

不急,我们还得做一项任务,打开DOS窗口,CMD到资源文件所在目录,运用JDK的native2ascii工具把我们新建的资源文件改成另一个名字的资源文件,例如bank.properties。命令如下:

>native2ascii -encoding gbk ApplicationResources_zh.properties bank.properties


打开bank.properties资源文件,自动生成的代码如下:
    
#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)

example.login.username = \u7528\u6237\u540D
example.login.password = \u5BC6\u7801

然后在myeclipse窗口中,把原来新建ApplicationResources_zh.properties 删除,并把bank.properties改为ApplicationResources_zh.properties (为了方便记忆,管理)。然后重起tomcat或进行reload文件,我们发现乱码问题没有了。

②利用Eclipse ResourceBundle Editor插件工具

      以上我们是利用了JDK的native2ascii工具来处理国际化问题,但在EC中,还有一种更方便的工具专门用来处理编辑java的资源文件国际化乱码问题,即Eclipse ResourceBundle Editor插件工具。安装了这个插件后,我们能进行方便的可视化资源文件编辑。推荐。。


其中
<filter>   
<filter-name>characterEncoding</filter-name>   
<filter-class>com.v512.example.CharacterEncodingFilter</filter-class>   
</filter>   
<filter-mapping>   
<filter-name>characterEncoding</filter-name>   
<url-pattern>/*</url-pattern>   
</filter-mapping>   
 <filter> <filter-name>characterEncoding</filter-name> <filter-class>com.v512.example.CharacterEncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>characterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
并不是必须的,你可以设置struts.properties 或 struts.xml
分别对应增加 struts.i18n.encoding = utf-8 或 <constant name="struts.i18n.encoding" value="utf-8" />


原因在于:

org.apache.struts2.dispatcher.Dispatcher的public void prepare(HttpServletRequest request, HttpServletResponse response) 已经帮你做这件事了,并且随便还将你设置的 struts.locale = zh_CN 一并处理了:


public void prepare(HttpServletRequest request, HttpServletResponse response) {   

       String encoding = null;   

       if (defaultEncoding != null) {   

          encoding = defaultEncoding;   

      }   

 

     Locale locale = null;   

       if (defaultLocale != null) {   

      locale = LocalizedTextUtil.localeFromString(defaultLocale, request.getLoca());   

       }   

 

       if (encoding != null) {   

           try {   

             request.setCharacterEncoding(encoding);   

          } catch (Exception e) {   

         LOG.error("Error setting character encoding to '" + encoding + "' -ignoring.", e);   

          }   

       }   

 

      if (locale != null) {   

        response.setLocale(locale);   

     }   

      if (paramsWorkaroundEnabled) {   

         request.getParamete("foo"); // simply read any parameter (existing or not) to "prime" the request   

     }   

  }  
分享到:
评论

相关推荐

    struts处理中文乱码问题总结

    struts处理中文乱码问题总结struts处理中文乱码问题总结struts处理中文乱码问题总结struts处理中文乱码问题总结

    Struts2Action处理中文乱码

    Struts2 Action 处理中文乱码问题是一个常见的挑战,尤其是在进行Web开发时,由于编码格式不统一,可能导致输入或显示的中文字符出现乱码。以下是对两种解决方法的详细解释: 方法一:通过配置Struts2的i18n编码 ...

    Struts2.0解决中文乱码

    本文将深入探讨如何在Struts2.0中解决中文乱码问题,确保应用程序能够正确地处理和显示中文字符。 ### Struts2.0中文乱码问题分析 #### 1. 表单提交中文乱码 在Web应用中,表单是用户与服务器交互的主要方式之一...

    struts下的汉字乱码问题

    在Struts框架中,汉字乱码问题是一个常见的问题,特别是在处理中文输入时。解决这个问题涉及到多个层面,包括页面编码设置、服务器配置以及Struts的Servlet配置。以下是对这些问题的详细解释: 1. 页面编码设置: ...

    struts中文乱码问题解决详细步骤

    通过这些配置,大部分Struts中文乱码问题都能得到解决。但有时,问题可能源自于其他因素,比如静态资源(如CSS、JavaScript文件)的编码设置,或者是第三方库的编码处理不当。因此,排查问题时需全方位考虑,确保每...

    struts1.2 解决中文乱码

    ### Struts 1.2 中文乱码问题详解与解决方案 #### 一、问题背景及原因分析 在 Web 应用开发过程中,特别是在使用 Java 的 Struts 1.2 框架时,中文乱码问题是开发者经常遇到的一个难题。这不仅影响用户体验,还会...

    struts2的中文乱码问题解决

    ### Struts2中文乱码问题解决方案 在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的挑战。这不仅影响用户体验,还可能导致数据不一致等问题。为了解决这一问题,我们需要理解其背后的原理,并采取...

    struts解决中文乱码问题

    在开发Web应用程序时,中文乱码问题是一个常见的挑战,特别是在使用Struts框架的时候。这个问题的出现通常是由于客户端和服务器端的字符集不一致导致的。本文将深入探讨如何解决Struts框架下的中文乱码问题。 首先...

    Struts2中文乱码问题最终解决方案

    然而,中文乱码问题一直是困扰开发者的一个常见问题,特别是在处理POST和GET请求时。以下是对标题和描述中涉及知识点的详细解释: 1. **StrutsPrepareAndExecuteFilter**: Struts2框架中的`...

    如何解决struts2中烦人乱码

    在struts2中解决页面中出现的乱码问题,写在web.xml中

    JSP,Servlet,Struts2,struts1,数据库乱码处理

    JSP,Servlet,Struts2,struts1,数据库乱码处理

    struts 2. 5.2解决中文乱码

    在处理中文字符时,可能会遇到乱码问题,这通常与字符编码设置不当有关。解决这个问题需要深入理解HTTP协议、Java I/O流以及Struts 2框架的配置。 首先,我们需要了解乱码产生的原因。在Web应用中,数据在网络传输...

    Struts2下载文件中文乱码处理

    ### Struts2下载文件中文乱码处理 在Web开发中,使用Struts2框架进行文件下载操作时,经常遇到的一个问题是文件名中的中文字符显示为乱码。这主要是因为浏览器和服务器之间的编码不一致所导致的。为了确保用户能够...

    Struts中文乱码解决方案

    然而,在处理中文字符时,由于编码不一致的问题,可能会出现中文乱码的情况。这里我们将详细探讨如何解决 Struts 中的中文乱码问题。 一、在 Action 类中的解决方法: 当在 Action 类中遇到中文乱码问题时,可以...

    Struts框架下Ajax发送中文乱码问题的解决

    通过以上步骤,我们应该能够有效地避免在Struts框架下使用Ajax时出现的中文乱码问题。当然,实际情况可能更为复杂,例如涉及Tomcat服务器或其他中间件的配置,都需要一一排查并适配。对于开发和调试过程中遇到的具体...

    奇怪的struts2的中文乱码问题及解决.docx

    总之,处理Struts2在IE上的中文乱码问题,关键在于理解浏览器对字符编码的不同处理方式,并针对性地调整解析策略或编码设置。通过上述方法,开发者可以有效地解决此类问题,确保Web应用在不同浏览器下的正常运行。

    Struts上传,已经处理好乱码问题

    总结,Struts框架处理文件上传涉及的主要步骤包括配置Struts配置文件、创建上传表单类、编写处理文件上传的Action以及处理可能出现的乱码问题。通过正确设置字符编码,可以确保文件名在上传过程中保持正确,避免出现...

    struts之中文乱码问题

    Struts是一个非常流行的Java Web应用程序框架,用于构建和管理MVC(模型-视图-控制...如果你的项目中仍然存在乱码问题,建议参考提供的“Struts中文乱码解决方案.doc”文档,它可能包含了更详细的排查步骤和解决方案。

Global site tag (gtag.js) - Google Analytics