UTF-8 encode decode 集合

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.URLDecoder;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;

 InputStream requestInputStream = request.getInputStream();
String requestJson = IOUtils.toString(requestInputStream, "UTF-8");

 

URLDecoder.decode(reqBean.getToken(), "UTF-8")


 String url = "%2fvod%2fhls%2fbWVkaWEy%4dS8y%4dDE1%4dTEw%4djIyNTAwODAwNV8xODcyay5tcDQ%3d%5f0000%2ets%3fdur%3d6%26tokenekot%3d268nEYoBbVgJqb%4dAcnV%4d";
        String ss = URLDecoder.decode(url,"UTF-8");
        System.out.println(ss);

 

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

 

	@RequestMapping(value = "/rest", produces = "application/xml;charset=UTF-8", method = RequestMethod.POST)
	@ResponseBody
	public String rest(@RequestBody String body, HttpServletRequest request,
			HttpServletResponse response)
{
}

 

// HTTP请求消息头 CONTENT_TYPE_VALUE
        String requestHeaderContentTypeValue = "text/html;charset=utf-8";

 

HttpClient httpClient = new HttpClient();
        PostMethod method = new PostMethod(SERVER_URL);
        // method.set
        String requestJson =
            "{\"token\":\"630584331\",\"type\":\"2\",\"sendMode\":\"0\",\"receiveId\":\"644991187\",\"receiveClassId\":\"\",\"subjectId\":\"\",\"sendTime\":\"\",\"messageContent\":\"奥看科技和宝贝测试通知\"}";
//        String requestJson =
//                "{\"token\":\"628366322\",\"type\":\"2\",\"sendMode\":\"0\",\"receiveId\":\"641628755\",\"receiveClassId\":\"\",\"subjectId\":\"\",\"sendTime\":\"\",\"messageContent\":\"奥看科技和宝贝测试通知\"}";
        RequestEntity requestEntity = new ByteArrayRequestEntity(requestJson.getBytes("UTF-8"), "UTF-8");
        method.setRequestEntity(requestEntity);
        method.setRequestHeader("Content-Type","application/json;charset=UTF-8");
        method.setRequestHeader("Authorization",
            "Digest username="
                + "11111"
                + ",realm=realm@host.com,nonce=4a568c428a037e2f849526a7dc65ef25,uri="
                + SERVER_URL
                + ",response=147b13265f33e63bf17f25f47bcc8560,cnonce=00000001,opaque=5ccc069c403ebaf9f0171e9517f40e41,qop=auth,nc=00000001");
        httpClient.executeMethod(method);

 

EnCodeCharsetUtil

package com.online.schedule.service.common;

import java.io.UnsupportedEncodingException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * 字符处理工具类
 * 
 * @author YiZhichao
 * @version [版本号, 2014-11-10]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class EnCodeCharsetUtil
{
    /** 定义日志对象 */
    public static final Log LOG = LogFactory.getLog(EnCodeCharsetUtil.class);
    
    public static String convertCharset(String s)
    {
        if (s != null)
        {
            try
            {
                int length = s.length();
                byte[] buffer = new byte[length];
                // 0x81 to Unicode 0x0081, 0x8d to 0x008d, 0x8f to 0x008f, 0x90 to 0x0090, and 0x9d to 0x009d.
                for (int i = 0; i < length; ++i)
                {
                    char c = s.charAt(i);
//                    if (c == 0x0080)
//                    {
//                        buffer[i] = (byte)0x80;
//                    }
//                    else 
                    if (c == 0x0081)
                    {
                        buffer[i] = (byte)0x81;
                    }
                    else if (c == 0x008d)
                    {
                        buffer[i] = (byte)0x8d;
                    }
                    else if (c == 0x008f)
                    {
                        buffer[i] = (byte)0x8f;
                    }
                    else if (c == 0x0090)
                    {
                        buffer[i] = (byte)0x90;
                    }
                    else if (c == 0x009d)
                    {
                        buffer[i] = (byte)0x9d;
                    }
                    else
                    {
                        buffer[i] = Character.toString(c).getBytes("CP1252")[0];
                    }
                }
                String result = new String(buffer, "UTF-8");
                return result;
            }
            catch (UnsupportedEncodingException e)
            {
                e.printStackTrace();
            }
        }
        return null;
    }
    
    public static String convertCharsetByte(byte[] buffer)
    {
        if (buffer != null)
        {
            try
            {
                // 0x81 to Unicode 0x0081, 0x8d to 0x008d, 0x8f to 0x008f, 0x90 to 0x0090, and 0x9d to 0x009d.
                for (int i = 0; i < buffer.length; ++i)
                {
                    char c = (char)buffer[i];
                    if (c == 0x0081)
                    {
                        buffer[i] = (byte)0x81;
                    }
                    else if (c == 0x008d)
                    {
                        buffer[i] = (byte)0x8d;
                    }
                    else if (c == 0x008f)
                    {
                        buffer[i] = (byte)0x8f;
                    }
                    else if (c == 0x0090)
                    {
                        buffer[i] = (byte)0x90;
                    }
                    else if (c == 0x009d)
                    {
                        buffer[i] = (byte)0x9d;
                    }
                    else
                    {
                        buffer[i] = Character.toString(c).getBytes("CP1252")[0];
                    }
                }
                String result = new String(buffer, "UTF-8");
                return result;
            }
            catch (UnsupportedEncodingException e)
            {
                e.printStackTrace();
            }
        }
        return null;
    }
    
     public static void main(String[] args)
     {
//         String str = "5月9日下åˆ,市教育局局长王建åŽæ¥æˆ‘校现场调研ã€å调,陪åŒè°ƒç ”的有市教育局副局长æŽæž«ã€å‘展计划处处长莫岳平åŠå»ºè®¾æ–¹é‡‘茂投资(长沙)有é™å…¬å¸æ‰§è¡Œæ€»ç»ç†å¼ å¿—超ã€å‰¯æ€»ç»ç†å¹²èã€å­¦æ ¡ç­¹å»ºéƒ¨æ€»ç»ç†çš®å†›ã€‚我校校长å¶åŒç§‹ã€å…šæ€»æ”¯ä¹¦è®°æ›¹å…±å¹³ã€å‰¯æ ¡é•¿çŽ‹å‰‘湘ã€èµµå¿ ç§‘热情接待了调研考察组一行。<p>王建åŽå±€é•¿ä¸€åˆ°å­¦æ ¡å°±è€ƒå¯Ÿäº†å­¦æ ¡çš„建设工地现场。éšåŽï¼ŒçŽ‹å»ºåŽå±€é•¿åœ¨æˆ‘校项目指挥部å¬å¼€äº†åº§è°ˆä¼šã€‚会上,王建åŽå±€é•¿è¯¢é—®äº†å­¦æ ¡å·¥ç¨‹å»ºè®¾è¿›åº¦ï¼Œå­¦æ ¡æŠ•èµ„建设方金茂投资(长沙)有é™å…¬å¸å­¦æ ¡ç­¹å»ºéƒ¨æ€»ç»ç†çš®å†›å¯¹æ­¤ä½œäº†å…·ä½“介ç»ã€‚皮军表示,我校项目将于6月底基本完工,在8月15æ—¥å‰å¯ä»¥è¾¾åˆ°è®©å­¦ç”Ÿå…¥å­¦çš„æ¡ä»¶ã€‚张志超总ç»ç†è¡¨ç¤ºï¼Œå»ºè®¾æ–¹ä¸€å®šä¼šåœ¨ä¿è´¨ä¿é‡çš„å‰æ下推进工程建设的进度,积æžåè°ƒå„方,确ä¿ä»Šå¹´ä¹æœˆä»½å¦‚期开学。</p><p>å¶åŒç§‹æ ¡é•¿åœ¨ä¼šä¸Šæ„Ÿè°¢å¸‚教育局王建åŽå±€é•¿ä¸€è¡ŒåŠé‡‘茂投资(长沙)有é™å…¬å¸åœ¨æˆ‘校筹备工作进入100天倒计时之际莅临我校考察,对我校筹备工作给予的关心和支æŒã€‚我校将按市教育局è¦æ±‚ç¡®ä¿å­¦æ ¡åŽæœŸæ•™è‚²æ•™å­¦è®¾æ–½é…套工作在8月15æ—¥å‰å¦‚期完æˆï¼Œé¡ºåˆ©å¼€å­¦ã€‚</p><p>最åŽï¼ŒçŽ‹å»ºåŽå±€é•¿æ„Ÿè°¢äº†å»ºè®¾æ–¹å¤œä»¥ç»§æ—¥åœ°æ–½å·¥å»ºè®¾ï¼Œå……分肯定了我校的筹备工作,对学校åŽæœŸçš„建设åŠç­¹å¤‡å·¥ä½œæ出了以下è¦æ±‚:一是希望学校建设方安全ã€æ–‡æ˜Žæ–½å·¥ï¼Œå»ºæˆä¼˜è´¨å·¥ç¨‹ï¼›äºŒæ˜¯è¦æ±‚学校积æžé…åˆå»ºè®¾æ–¹ï¼ŒæŒ‰è½»é‡ç¼“急åˆç†é“ºæŽ’项目;三是教育局相关处室è¦å…¨åŠ›æ”¯æŒå­¦æ ¡ç­¹å¤‡å·¥ä½œï¼Œç¡®ä¿å­¦æ ¡æ•™è‚²æ•™å­¦è®¾å¤‡è®¾æ–½åŠä¼˜ç§€å¸ˆèµ„队ä¼å¦‚期到ä½ï¼Œä»Šå¹´ä¹æœˆæ­£å¼å¼€å­¦ã€‚</p>";
//         String str = "周å—梅溪湖中学学生宿èˆåŠæ•™å®¤ç›´é¥®å‡€æ°´æ£€æµ‹æŠ¥å‘Š";
         String str = "江彬æ°";
//         String str1  = "周�梅溪湖中学学生宿��教室直饮净水检测报告";
//         String str3  = "周å—梅溪湖中学学生宿èˆåŠæ•™å®¤ç›´é¥®å‡€æ°´æ£€æµ‹æŠ¥å‘Š";
//                         周å—梅溪湖中学学生宿èˆåŠæ•™å®¤ç›´é¥®å‡€æ°´æ£€æµ‹æŠ¥å‘Š
         
//         String str3 = "长沙市教育局副局长王建林�校视察指导工作";
         
         String ch = EnCodeCharsetUtil.convertCharset(str);
         System.out.println(ch);
         
//         String ch = 
     }
}

输出 江彬杰

 

Encodes

/**
 * Copyright (c) 2005-2012 springside.org.cn
 */
package com.smart.plat.framework.utils;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.lang3.StringEscapeUtils;

/**
 * 封装各种格式的编码解码工具类.
 * 1.Commons-Codec的 hex/base64 编码
 * 2.自制的base62 编码
 * 3.Commons-Lang的xml/html escape
 * 4.JDK提供的URLEncoder
 * @version 2013-01-15
 */
public class Encodes {

	private static final String DEFAULT_URL_ENCODING = "UTF-8";
	private static final char[] BASE62 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray();

	/**
	 * Hex编码.
	 */
	public static String encodeHex(byte[] input) {
		return new String(Hex.encodeHex(input));
	}

	/**
	 * Hex解码.
	 */
	public static byte[] decodeHex(String input) {
		try {
			return Hex.decodeHex(input.toCharArray());
		} catch (DecoderException e) {
			throw Exceptions.unchecked(e);
		}
	}

	/**
	 * Base64编码.
	 */
	public static String encodeBase64(byte[] input) {
		return new String(Base64.encodeBase64(input));
	}
	
	/**
	 * Base64编码.
	 */
	public static String encodeBase64(String input) {
		try {
			return new String(Base64.encodeBase64(input.getBytes(DEFAULT_URL_ENCODING)));
		} catch (UnsupportedEncodingException e) {
			return "";
		}
	}

//	/**
//	 * Base64编码, URL安全(将Base64中的URL非法字符'+'和'/'转为'-'和'_', 见RFC3548).
//	 */
//	public static String encodeUrlSafeBase64(byte[] input) {
//		return Base64.encodeBase64URLSafe(input);
//	}

	/**
	 * Base64解码.
	 */
	public static byte[] decodeBase64(String input) {
		return Base64.decodeBase64(input.getBytes());
	}
	
	/**
	 * Base64解码.
	 */
	public static String decodeBase64String(String input) {
		try {
			return new String(Base64.decodeBase64(input.getBytes()), DEFAULT_URL_ENCODING);
		} catch (UnsupportedEncodingException e) {
			return "";
		}
	}

	/**
	 * Base62编码。
	 */
	public static String encodeBase62(byte[] input) {
		char[] chars = new char[input.length];
		for (int i = 0; i < input.length; i++) {
			chars[i] = BASE62[((input[i] & 0xFF) % BASE62.length)];
		}
		return new String(chars);
	}

	/**
	 * Html 转码.
	 */
	public static String escapeHtml(String html) {
		return StringEscapeUtils.escapeHtml4(html);
	}

	/**
	 * Html 解码.
	 */
	public static String unescapeHtml(String htmlEscaped) {
		return StringEscapeUtils.unescapeHtml4(htmlEscaped);
	}

	/**
	 * Xml 转码.
	 */
	public static String escapeXml(String xml) {
		return StringEscapeUtils.escapeXml10(xml);
	}

	/**
	 * Xml 解码.
	 */
	public static String unescapeXml(String xmlEscaped) {
		return StringEscapeUtils.unescapeXml(xmlEscaped);
	}

	/**
	 * URL 编码, Encode默认为UTF-8. 
	 */
	public static String urlEncode(String part) {
		try {
			return URLEncoder.encode(part, DEFAULT_URL_ENCODING);
		} catch (UnsupportedEncodingException e) {
			throw Exceptions.unchecked(e);
		}
	}

	/**
	 * URL 解码, Encode默认为UTF-8. 
	 */
	public static String urlDecode(String part) {

		try {
			return URLDecoder.decode(part, DEFAULT_URL_ENCODING);
		} catch (UnsupportedEncodingException e) {
			throw Exceptions.unchecked(e);
		}
	}
}

 

转载于:https://my.oschina.net/yizhichao/blog/883645

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值