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);
}
}
}