知识大全 struts中文问题和国际化问题的终极解决方案

Posted 中文

篇首语:奋斗者在汗水汇集的江河里,将事业之舟驶到了理想的彼岸。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 struts中文问题和国际化问题的终极解决方案相关的知识,希望对你有一定的参考价值。

  Java本身就支持多国语言编码 不需要写任何程序 可以很简单的 实现 秘诀就是两点      所有HTML/JSP页面全部采用UTF 编码     客户端浏览器完全支持UTF 编码     步骤    首先把所有的HTML/JSP的ContentType都设为UTF      然后对于JSP程序中的非ASCII码提示信息都不应该写在程序里面 都应该放在  application properties里面统一管理      对HTML用native ascii工具统一做一次处理 把HTML中的非ASCII码都转换为Unicode编码      针对不同的语言 写不同的application properties 比如说简体中文是  application_zh_CN properties 繁体中文是application_zh_ properties这样 然后对这些配置信  息文件同样用native ascii工具处理一次 把非ASCII码统统转为Unicode编码      在Servlet的request getCharacterEncoding()获得客户端的操作系统默认编码 然后set到Struts  的HTTPSession的Locale中     OK!现在不同的客户访问 就会显示不同的语言版本了 你可以看看此时你的浏览器的字符集 就是  UTF 现在你的网站和Google一样了 嘿嘿 其实你有心的话 看看你的浏览器访问Google的时候是  什么字符集吧    切记 所有的HTML/JSP都要设为UTF 编码 所有的文件中的非ASCII码字符都要用native ascii工具转  为用ASCII表示的Unicode编码        上面所述是我从网上下的一篇于中文问题的解决方案 确切的说应该是关于Struts的国际化问题 下面我结合我的实践谈谈具体如何实现Struts的国际化问题 我对理论不是非常精通 我只能完全凭自己的理解和实践来讲述 所以下面讲的内容可能不是非常正确 还请大家原谅 但有一点可以肯定 我通过自己的努力解决了Struts的中文问题 并实现Struts的国际化 其实一切并不复杂 下面是具体步骤      遇到的问题(这些问题也许不会同时出现)  a 中文数据从数据库中到jsp中后就变成了 ????   b 做好的中文properties文件 其中的中文value在页面显示乱码  c jsp文件中的中文到浏览器后显示时也是乱码(建议不要在jsp文件中输入中文 尽量放在properties文件中)  d 由jsp传给bean的中文值 再由bean传回页面又是乱码  e 当更换本地浏览器的语言选项时 Web应用程序不能自动根据你的locale选择合适的* properties文件 导致Web应用程序不能国际化    环境   Web服务器 Tomcat   操作系统 Win Server  JVM jdk   数 据 库 Oracle   开发工具 struts studio pro for eclipse   先将所有* jsp 网页中开头处加入     再设置    然后编辑好两个* properties文件 放在classes文件夹下你指定的地方 这里是放在/web inf/classes//wiley 下 它们分别是     ApplicationResources properties (英文资源文件)  ApplicationResources_zh properties (中文资源文件)  随便用什么工具编写都行啊!   将ApplicationResources_zh properties转码成gb 上面引文说要转成UTF 结果我试了 不行 转成gb 就行了 操作是   将ApplicationResources_zh properties更名为ApplicationResources_xx properties  在DOS命令行进入ApplicationResources_xx properties所在的文件夹  使用命令 native ascii encoding gb ApplicationResources_xx properties ApplicationResources_zh properties(至于你为什么会出现 native ascii不是内部命令 请查其它资料 可能你要设置环境变量 因为他是jdk的文件夹bin下的一个应用程序)   接下来配置struts config xml 很简单 我们加入 就行了     到此已能解决大多数中文问题 如上面所说的a b e 现在打开浏览器 选择菜单 工具》internet选项》语言 将 中文-中国[zh cn] 删掉 添加一个 英语-英国[zh gb] 确定后 重启Tomcat 输入网址你就会发现 你的页面的文本信息就会用的是ApplicationResources properties (英文资源文件)中的内容 如果换回 中文-中国[zh cn] 它就会显示ApplicationResources_zh properties (中文资源文件)中的中文内容     至于问题 c jsp文件中的中文到浏览器后显示时也是乱码 你就要用与第 步类似的方法来重新对* jsp 文件编码 这时 encoding的参数就要用UTF 了 如果你用的也是struts studio pro for eclipse工具 这一步就免了 它会自动用UTF 的格式存储   至于问题 d 由jsp传给bean的中文值 再由bean传回页面又是乱码 的解决 我只是加了个过滤器   你可以现在web xml中加入     Set Character Encoding   wiley SetCharacterEncodingFilter    encoding  utf     ignore  true    Set Character Encoding  action    然后在你指定的包内加个java文件 我放在了/web inf/classes//wiley 里 下面是源代码   /*  * XP Forum  *  * Copyright (c) RedSoft Group All rights reserved   *  */  package huahang tj struts filters;    import javax servlet *;  import java io IOException;    /**  *  Filter that sets the character encoding to be used in parsing the  * ining request either unconditionally or only if the client did not  * specify a character encoding Configuration of this filter is based on  * the following initialization parameters:    *    *  encoding The character encoding to be configured  * for this request either conditionally or unconditionally based on  * the ignore initialization parameter This parameter  * is required so there is no default   *  ignore If set to true any character encoding  * specified by the client is ignored and the value returned by the  * selectEncoding() method is set If set to false   * selectEncoding() is called only if the  * client has not already specified an encoding By default this  * parameter is set to true   *    *  *  Although this filter can be used unchanged it is also easy to  * subclass it and make the selectEncoding() method more  * intelligent about what encoding to choose based on characteristics of  * the ining request (such as the values of the Accept Language  * and User Agent headers or a value stashed in the current  * user´s session     *  * @author John Wong  *  * @version $Id: SetCharacterEncodingFilter java v / / : : johnwong Exp $  */  public class SetCharacterEncodingFilter implements Filter     // Instance Variables    /**  * The default character encoding to set for requests that pass through  * this filter   */  protected String encoding = null;    /**  * The filter configuration object we are associated with If this value  * is null this filter instance is not currently configured   */  protected FilterConfig filterConfig = null;    /**  * Should a character encoding specified by the client be ignored?  */  protected boolean ignore = true;      // Public Methods    /**  * Take this filter out of service   */  public void destroy()     this encoding = null;  this filterConfig = null;        /**  * Select and set (if specified) the character encoding to be used to  * interpret request parameters for this request   *  * @param request The servlet request we are processing  * @param result The servlet response we are creating  * @param chain The filter chain we are processing  *  * @exception IOException if an input/output error occurs  * @exception ServletException if a servlet error occurs  */  public void doFilter(ServletRequest request ServletResponse response   FilterChain chain)  throws IOException ServletException     // Conditionally select and set the character encoding to be used  if (ignore || (request getCharacterEncoding() == null))   String encoding = selectEncoding(request);  if (encoding != null)  request setCharacterEncoding(encoding);      // Pass control on to the next cha138/Article/program/Java/ky/201311/28154

相关参考

知识大全 Struts从零开始二、解决中文乱码的问题实例[3]

Struts从零开始二、解决中文乱码的问题实例[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Struts从零开始二、解决中文乱码的问题实例[2]

Struts从零开始二、解决中文乱码的问题实例[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Struts从零开始二、解决中文乱码的问题实例[4]

Struts从零开始二、解决中文乱码的问题实例[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Struts从零开始二、解决中文乱码的问题实例[5]

Struts从零开始二、解决中文乱码的问题实例[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Struts从零开始二、解决中文乱码的问题实例[1]

Struts从零开始二、解决中文乱码的问题实例[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Struts 的汉字显示问题终结解决方案

Struts的汉字显示问题终结解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  看了网上的

知识大全 Eclipse工具下开发Struts解决乱码的问题

Eclipse工具下开发Struts解决乱码的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Struts里提交中文表单到ActionForm的乱码问题

Struts里提交中文表单到ActionForm的乱码问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

紧密跟踪国际财务报告准则项目进展和国内实务发展,找准企业会计准则国际趋同和解决我国实际问题之间的平衡点和结合点,要做到( )。

会计改革与发展十四五规划题目:紧密跟踪国际财务报告准则项目进展和国内实务发展,找准企业会计准则国际趋同和解决我国实际问题之间的平衡点和结合点,要做到()。A、忽略国际财务报告准则的最新发展B、满足中国

知识大全 国际商务期末作业1:你认为企业在跨国化经营中面临的最难以解决的问题是什么

国际商务期末作业1:你认为企业在跨国化经营中面临的最难以解决的问题是什么?2:就如何解决该问题谈谈中国的跨国公司可以说是中国经济体制改革和对外开放的产物,具有发展中国家企业国际化初级阶段的明显特征。例