当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

自己写的一个繁体到简体的转换程序

发表于: 2014-07-29   作者:asialee   来源:转载   浏览:
摘要:           今天调研一个任务,基于java的filter实现繁体到简体的转换,于是写了一个demo,给各位博友奉上,欢迎批评指正。          实现的思路是重载request的调取参数的几个方法,然后做下转换。          

          今天调研一个任务,基于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);
     }

}

      

    由于时间有限,写的比较仓促,如有考虑不周情况,请大家批评指正。

 

       

自己写的一个繁体到简体的转换程序

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
在项目中先引用Encode.dll 下面是下载地址: Encode.dll ChineseConverter.dll 1、html页面代码 <
前几日有位�W友��了�����}�s操作系�y如何在��w和繁�w之�g�M行�D�Q。答案其��很
首先去这个地址下载类库: http://www.microsoft.com/downloads/zh-cn/confirmation.aspx?FamilyID=
先上图吧: 功能是: 点击play后三个图片会随机的进行变化, 然后点击相应的底下的stop按钮,相应 的
先上图吧: 功能是: 点击play后三个图片会随机的进行变化, 然后点击相应的底下的stop按钮,相应 的
繁体简体互换的例子 using System; using System.Collections.Generic; using System.ComponentMode
繁体简体互换的例子 using System; using System.Collections.Generic; using System.ComponentMode
PS:请不要使用离线下载,以免镜像损坏! 1、CN: 文件名:cn_windows_8.1_enterprise_with_update_
  上一篇说到,公司需要把所有的系统逐步更改为简体,一些系统可以保持原先的繁体数据,而有一些
最近在给一个香港学生做毕设,要求生成随机繁体汉字。慕课网视频讲了如何生成简体汉字,其实繁体汉
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号