知识大全 Java多语言编码问题解析(2)
Posted 知
篇首语:于今腐草无萤火,终古垂杨有暮鸦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java多语言编码问题解析(2)相关的知识,希望对你有一定的参考价值。
Java多语言编码问题解析(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
这里是一个具体的例子 现在因为浏览器对UTF 的支持 我们可以通过在源文件 请求 响应中都使用unicode编码方式 来轻松达到处理国际化和字符编码问题的目标 以我们使用的tomcat 为例 过程如下 编写JSP页面时 在每个JSP页面在页首都要增加一行 在编辑JSP页面时 一定要确保JSP文件以unicode的方式保存 目前几乎所有的编辑器都有以unicode编码保存或将文件内容转换成unicode的功能 增加一个用来声明request的CharacterEncoding的类SetCharacterEncodingFilter java SetCharacterEncodingFilter的这个类主要的作用就是 把request在从页面刚提交到server端的时候的encoding声明为我们想要的encoding 通过调用request的方法setCharacterEncoding (String encoding) 来改变 这样可以使request的从客户端传过来的时候 按我们在web xml (在第二点可以讲到) 中配置的encoding来对提交的数据编码 修改web xml文件 配置一个filter来过滤全部url请求 通过第二步中的类 声明所有url请求的编码类型未UTF 在web xml文件中加上以下这段 Set Character Encoding kyle web sample SetCharacterEncodingFilter encoding UTF Set Character Encoding /* 在上面这段文字中 kyle web sample SetCharacterEncodingFilter 指定步骤 中的类的位置 UTF 指定我们希望声明的request的编码类型 /* 指定这个filter的适用范围(这里指的是全部url请求) 同时注意二个问题 servlet的版本必需是支持request setCharacterEncoding(String encoding)这个方法才行 也就是在serlvert 以上 控制面板区域设置的当前代码页属性必需设定为 (GBK) 如果是 (OEM United States) 它处理文字的时候是 -bit 而中文和日文等是 -bit 所以在显示和处理时它把中文的前 位给截掉 这样就会出现乱码问题 附 SetCharacterEncodingFilter源文件 package kyle web sample; import java io IOException; import javax servlet Filter; import javax servlet FilterChain; import javax servlet FilterConfig; import javax servlet ServletException; import javax servlet ServletRequest; import javax servlet ServletResponse; import javax servlet UnavailableException; public class SetCharacterEncodingFilter implements Filter /** * 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; /** * 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 filter chain doFilter(request response); /** * Place this filter into service * * @param filterConfig The filter configuration object * *encoding * UTF * */ public void init(FilterConfig filterConfig) throws ServletException this filterConfig = filterConfig; this encoding = filterConfig getInitParameter( encoding ); String value = filterConfig getInitParameter( ignore ); if (value == null) this ignore = true; else if (value equalsIgnoreCase( true )) this ignore = true; else if (value equalsIgnoreCase( yes )) this ignore = true; else this ignore = false; /** * Select an appropriate character encoding to be used based on the * characteristics of the current request and/or filter initialization * parameters If no character encoding should be set return * null * * The default implementation unconditionally returns the value configured * by the encoding initialization parameter for this * filter * * @param request The servlet request we are processing */ protected String selectEncoding(ServletRequest request) return (this encoding); cha138/Article/program/Java/JSP/201311/19699相关参考
RH8实现多用户多语言登陆 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! RH实现多用户多语言登
C#的Windows编程中多语言的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 实现多语言
.NETFramework中多语言支持的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前言
ASP.NETMVC多语言解决方案 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 现在ASPNE
利用INI文件实现界面无闪烁多语言切换 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 程序运行时
知识大全 用.NET的System.Globalization来创建多语言应用程序
用.NET的System.Globalization来创建多语言应用程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们
Java中的中文编码问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ()为什么要编码&nbs
Java属性文件编码问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Property文件中使
Javaweb解决常见编码出现的问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
Java二维码的生成以及解析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 日本人写的解码与编码