今天调研一个任务,基于java的filter实现繁体到简体的转换,于是写了一个demo,给各位博友奉上,欢迎批评指正。
实现的思路是重载request的调取参数的几个方法,然后做下转换。
转换类用的是网上的ZHConverter,就不多讲了,看一个例子就好:
public class Test { public static void main(String[] args) throws Exception { // Instantiation will fetch the property file which load the Chinese character mappings ZHConverter converter = ZHConverter.getInstance(ZHConverter.SIMPLIFIED); String traditionalSrc = "有背光的機械式鍵盤"; String simplified = converter.convert(traditionalSrc); System.out.println(simplified); // Or String simplifiedSrc = "简体字"; String traditional = ZHConverter.convert(simplifiedSrc, ZHConverter.TRADITIONAL); System.out.println(traditional); } }
1. 首先实现一个filter
/** * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // perform request filtering HttpServletRequest httpServletRequest = (HttpServletRequest) request; CharChangeHttpRequest requestWrapper = new CharChangeHttpRequest(httpServletRequest); // continue the filter chain chain.doFilter(requestWrapper, response); // perform response filtering }
2. 由于自己封装了HttpServletRequest, 下面是自己写的实现
public class CharChangeHttpRequest extends HttpServletRequestWrapper { public CharChangeHttpRequest(HttpServletRequest request) { super(request); } @Override public String[] getParameterValues(String name) { String[] value = super.getParameterValues(name); if(value == null){ return null; } else { String[] rValues = new String[value.length]; for(int i = 0; i < rValues.length; i++){ rValues[i] = convert(value[i]); } return rValues; } } @Override public String getParameter(String name) { String value = super.getParameter(name); if(value == null || value.length() == 0){ return value; } return convert(value); } private String convert(String value){ ZHConverter converter = ZHConverter.getInstance(ZHConverter.SIMPLIFIED); try { return converter.convert(new String(value.getBytes("iso-8859-1"),"utf-8")); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return ""; } private String[] convert(String[] values){ String[] rValues = new String[values.length]; for(int i = 0; i < rValues.length; i++){ rValues[i] = convert(values[i]); } return rValues; } @Override public Map getParameterMap() { Map originMap = super.getParameterMap(); Map<String,String[]> newMap = new HashMap<String,String[]>(originMap); for (Iterator it = newMap.entrySet().iterator(); it.hasNext();) { Map.Entry entry = (Map.Entry)it.next(); entry.setValue(convert((String[])entry.getValue())); } return Collections.unmodifiableMap(newMap); } }
由于时间有限,写的比较仓促,如有考虑不周情况,请大家批评指正。
相关推荐
标题中的“web繁体简体转换程序”是指一个专门用于网页上进行中文繁体与简体互相转换的应用程序。这个程序通常由JavaScript编写,因为JavaScript是网页开发中常用的客户端脚本语言,可以在用户浏览器上直接运行,...
繁体简体转换程序繁体简体转换程序繁体简体转换程序繁体简体转换程序繁体简体转换程序
总的来说,这款《中文繁体简体转换程序》是一个方便实用的语言工具,对于需要处理中文繁简转换的用户来说,无疑是一个值得尝试的选择。其背后的技术实现包括汉字字库、转换算法以及可能的用户界面设计,都是软件开发...
本文将深入探讨一个专门用于进行这种转换的程序——“中文简繁体转换程序”,帮助用户理解和掌握其核心功能和使用方法。 简繁体转换程序,正如其名,是一种能够实现中文简体与繁体之间相互转化的软件工具。它广泛...
下载并解压"chrome繁体简体转换插件.rar"后,你会得到一个名为"jianfantijiehuan1.0_0"的文件夹,这是插件的源代码。Chrome浏览器允许用户以开发者模式加载未在Chrome网上应用店发布的扩展程序。因此,你需要按照...
Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter 命名空间包含繁体中文和简体中文转换的工具。
描述中提到的“繁体简体字转换”是一个通用的概念,涵盖了许多实际应用。例如,在文本编辑器、电子邮件客户端、社交媒体平台,甚至在搜索引擎中,都有内置的功能或者插件可以进行这样的转换。此外,还有一些专门的...
本篇文章将深入探讨如何利用VC++编写一个中文简体繁体字符转换程序,以及涉及到的关键技术点。 首先,我们需要了解简体和繁体字符的基本概念。简体中文是中国大陆普遍使用的文字形式,而繁体中文则广泛应用于台湾、...
【简体繁体转换器VB源码】是一个编程项目,主要使用Visual Basic(VB)语言实现,用于将简体中文字符转换为繁体中文字符,反之亦然。这个工具在处理中文文本时非常实用,特别是在处理多语言内容、历史文档或与使用...
这个"VC++中文繁体、简体(BIG-GBK)编码转换程序"是一个实用工具,它帮助开发者或者用户将简体中文(GB2312编码)的文本转换为繁体中文(BIG5编码)。下面我们将深入探讨相关的知识点。 1. **字符编码**:字符编码...
解压这个“中文繁体简体转换依赖文件”后,你应该将其放在你的项目代码的同一目录下,这样程序在运行时就能找到并加载这些依赖。如果你的代码已经引用了进行繁简转换的库,那么这些依赖文件很可能是该库的本地化资源...
标题中的“pb源码繁体转简体程序...总的来说,“pb源码繁体转简体程序”是一个实用的工具,它解决了在PowerBuilder开发中遇到的中文字符集转换问题,帮助开发者更好地适应多语言环境,提升代码的可读性和团队协作效率。
标题中的“js简体繁体转换代码”表明我们要讨论的是一个使用JavaScript编写的程序,它的功能是将简体中文字符转换为繁体中文字符,或者反之。这种转换在处理中文内容时非常有用,特别是在需要在不同地区或语言环境中...
《简繁体转换小程序》是一款由Delphi编程语言编写的实用工具,专为方便用户进行简体中文与繁体中文之间的快速转换而设计。这款小巧的程序(仅194K)无需安装,操作简单,使得用户不再需要依赖大型应用程序如...
通过以上步骤,我们可以编写一个VC++程序,实现中文简体和繁体之间的GBK编码转换。在实际开发中,理解并熟练掌握字符编码的原理和转换方法,是解决多语言环境下编码问题的关键。对于压缩包中的"codefans.net"文件,...
"简体转换为繁体"这个项目就是基于这样的需求,采用Java服务器页面(JSP)技术实现的一个字体转换程序。JSP是一种动态网页开发技术,它允许开发者在HTML或XML文档中嵌入Java代码,从而实现服务器端的逻辑处理。 ...
VC 繁体简体文字转换程序源码,可实现简体GB2312、繁体BIG5之间的互相转换,程序操作简单,使用方便,支持文件操作,载入纯文本格式的繁体或简体文字文件即可,选择需要转换的类型,点击“转换”按钮,即可实现快速...
批量去除TXT文件中隔一个字一个空格的情况。 2.在指定的目录上级生成日志文件。 批量去掉TXT文件名中的非法字符RenameFile.bat 1.批量重命名文件,去除文件名中不规范的字符。 2.在指定的目录上级生成日志文件。...
总之,PPT简体繁体字转换是一个涉及到语言处理、字符编码和文档格式的重要话题。通过理解不同转换方法及其优缺点,我们可以更有效地进行跨地区的沟通和协作。在实际操作中,应根据具体需求选择最适合的工具,以实现...