0 0

乱码问题怎么转都不行?求解0


	System.out.println("ISO-8859-1 TO UTF-8:"+new String(title.getBytes("ISO-8859-1"), "UTF-8"));
			System.out.println("GBK TO UTF-8"+new String(title.getBytes("GBK"), "UTF-8"));
			System.out.println("GB2312 TO UTF-8"+new String(title.getBytes("GB2312"), "UTF-8"));
			System.out.println("UTF-16 TO UTF-8"+new String(title.getBytes("UTF-16"), "UTF-8"));



结果是:
ISO-8859-1 TO UTF-8:*??:*??:title=*??:*??:
GBK TO UTF-8*??:*??:title=*??:*??:
GB2312 TO UTF-8*??:*??:title=*??:*??:
UTF-16 TO UTF-8??

是这个样子的我是用HTTPPOST向resteasy发送数据 在接受方出现乱码

发送例子

	public static String postContent(String url,String param) throws Exception {
		String content = "";
		HttpClient httpClient = new DefaultHttpClient();
//		httpClient.getParams().setParameter(
//				HttpProtocolParams.HTTP_CONTENT_CHARSET, "UTF-8");
		// 创建HttpGet
		HttpPost post = new HttpPost(url);
		StringEntity se= new StringEntity(param);
		se.setContentType("application/x-www-form-urlencoded;charset=utf-8");
		post.setEntity(se);
		// 执行get请求
		HttpResponse response = httpClient.execute(post);
		//httpResponse.getEntity().consumeContent();
		// 获取响应实体
		HttpEntity entity = response.getEntity();
//		Header hed = entity.getContentType();
//		InputStream in =null;
//		if(entity != null){
//			in = response.getEntity().getContent();
//		}
		
		if(post != null){
			// 关闭连接,释放资源
			post.abort();
		}
		
//		IOUtils.closeQuietly(in);
		httpClient.getConnectionManager().shutdown();
		return content;
	}



接受方

	@POST
	@Path("/addContent")
	@Produces("application/json;charset=utf-8")
	public String addContent(@FormParam("title") String title,
			@FormParam("short_title") String short_title,@FormParam("author") String author,
			@FormParam("description") String description,@FormParam("origin") String origin,
			@FormParam("tag") String tag,@FormParam("is_bold") String is_bold,
			@FormParam("origin_url") String origin_url,@FormParam("date") String date,
			@FormParam("title_color") String title_color,@FormParam("text") String text
			){
		try {   
			System.out.println("ISO-8859-1 TO UTF-8:"+new String(title.getBytes("ISO-8859-1"), "UTF-8"));
			System.out.println("GBK TO UTF-8"+new String(title.getBytes("GBK"), "UTF-8"));
			System.out.println("GB2312 TO UTF-8"+new String(title.getBytes("GB2312"), "UTF-8"));
			System.out.println("UTF-16 TO UTF-8"+new String(title.getBytes("UTF-16"), "UTF-8"));
			
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		System.out.println("short_title:"+short_title);
		System.out.println("author:"+author);
		System.out.println("description:"+description);
		System.out.println("origin:"+origin);
		System.out.println("tag:"+tag);
		System.out.println("is_bold:"+is_bold);
		System.out.println("origin_url:"+origin_url);
		System.out.println("date:"+date);
		System.out.println("title_color:"+title_color);
		System.out.println("text:"+text);
		
		String str = "1";
		ContetExtService contentService = (ContetExtService)SpringApplicationContext.getBean("contetExtService");
		String bold = is_bold;
//		if(contentService.addContent(title, short_title, author, description, origin, tag, bold, origin_url, date, title_color)){
//			str = "0";
//		}
		return str;
	}









2013年10月11日 11:29

9个答案 按时间排序 按投票排序

0 0

我调试了下你这个是编码设置的问题,在httpClient中发送中文的时候,将中文直接转成了ISO-8859-1造成了部分数据丢失,所以传过去本身就是错误的信息,怎么解码都不对。
你将postContent的第8行

StringEntity se= new StringEntity(param);

改为
StringEntity se= new StringEntity(param, HTTP.UTF_8);

就可以了

2013年10月14日 10:32
0 0

对待乱码问题,就用一种编码一路到底就没什么问题了
将Java/J2EE系统的统一编码定义为UTF-8。UTF-8编码是一种兼容所有语言的编码方式,惟一比较麻烦的就是要找到应用系统的所有出入口,然后使用UTF-8去“结扎”它。

  一个J2EE应用系统需要做下列几步工作:

1)开发和编译代码时指定字符集为UTF-8。JBuilder和Eclipse都可以在项目属性中设置。
2)使用过滤器,如果所有请求都经过一个Servlet控制分配器,那么使用Servlet的filter执行语句,将所有来自浏览器的请求(request)转换为UTF-8,因为浏览器发过来的请求包根据浏览器所在的操作系统编码,可能是各种形式编码。关键一句:
request.setCharacterEncoding("UTF-8")。

3)在JSP头部声明:<%@ page contentType="text/html;charset= UTF-8" %>。
4)在Jsp的html代码中,声明UTF-8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5)设定数据库连接方式是UTF-8。例如连接MYSQL时配置URL如下:
jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8

6)其他和外界交互时能够设定编码时就设定UTF-8,例如读取文件,操作XML等。

2013年10月13日 17:28
0 0

发送中文之前用两次base64编码处理,收到数据后解码两次。

2013年10月12日 20:23
0 0

(1)确认下服务端servlet容器的默认解码方式,
tomcat下面可以用new String(title.getBytes("ISO-8859-1"), "UTF-8"),是因为tomcat的默认解码方式是ISO-8859-1,所以需要转换回来
(2)第一步不行的话可能就要质疑一下你的客户端是否真的就会按照utf-8对post数据进行编码了,对HttpClient不熟悉,帮不到你。

2013年10月12日 13:25
0 0

猜想是post提交参数会经过escape编码,取参数的时候unescape解码一下。相关工具百度之

2013年10月12日 13:14
0 0

思路有问题吧,你用UTF-8编码,又用GBK编码方式解码。不乱码才怪呢。怎么编码的就怎么解码。

2013年10月12日 13:06
0 0

请求方设置编码格式
对于函数postContent(String url,String param)param参数做UTF-8编码
有几个地方需要注意
1、JAVA文件的编码方式
2、编译时指定的编码方式
3、传输数据的编码方式
4、接收方解析的编码方式

如果都不指定编码方式JAVA会默认指定操作系统的编码方式,这样过程中就有可能出现乱码,

2013年10月12日 10:29
0 0

System.out.println("UTF-8 TO UTF-8:"+new String(title.getBytes("UTF-8"), "UTF-8")); 呢

2013年10月11日 20:02
0 0

确定编码设置好么???? 

2013年10月11日 15:09

相关推荐

    一次性解决中文乱码问题

    在IT领域,中文乱码问题是一个常见的困扰,无论是开发网页、桌面应用还是数据库系统,都可能遇到这种情况。本文将深入探讨中文乱码的成因、解决方案,并为初学者提供一些实用的建议,帮助你们一次性解决这个问题。 ...

    共轭梯度法(极小化)求解Ax=b方程组MATLAB源码

    该文件以三阶实对称正定系数矩阵A为例,实现了共轭梯度法(极小化方法)求解Ax=b。可扩展到任意维数。 【注】:资源购买后,如果发现中文注释乱码,请第一时间私信我解决。

    Gauss_Seidel迭代法求解Ax=b方程组MATLAB源代码

    该MATLAB文件,主要以三阶系数矩阵为例,利用Gauss_Seidel迭代法求解Ax=b的方程组。可扩展到任意阶数。 【注】,购买后,若出现中文注释乱码,请私信我解决。

    2020-2021备战中考物理光学问题求解方法综合题及详细答案.pdf

    由于提供的文件内容是通过OCR技术扫描出的文档部分文字,且存在识别错误和漏识别的情况,因此无法直接从中获取有关中考物理光学问题求解方法的具体知识点。不过,根据文件的标题和描述可以推测,这份文件应该包含了...

    Jacobi迭代法求解Ax=b方程组数值解MATLAB源代码

    该MATLAB文件,主要以三阶方程组为例,借助Jacobi迭代法实现了方程组的数值解求解。可以扩展到任意阶数。 【注】若因编辑器的编码问题导致中文注释乱码,请在购买后私信我解决。

    随机多比特翻转算法求解布尔多项式方程组可满足性问题

    根据标题和描述,本文将围绕“随机多比特翻转算法求解布尔多项式方程组可满足性问题”展开。这个问题属于计算机科学中的布尔可满足性问题(SAT)范畴,是逻辑和计算机科学中的一个关键问题,因为它在理论计算机科学...

    基于组合优化的线性含错方程组的求解方法.pdf

    该算法在组合优化问题,尤其是求解线性含错方程组中,可以有效避免早熟收敛,提高求解质量。 6. 数学模型的建立:建立数学模型是解决工程和科学问题的关键步骤。在本论文中,作者必须构建一个能有效描述线性含错...

    sdif算法,matlab代码,注释乱码,matlab源码.zip

    不过,你可以按照上述步骤检查和理解代码,或者在遇到注释乱码问题时,先解决编码问题再进行阅读和理解。同时,理解SDIF算法的基本原理和MATLAB的相应函数用法,将有助于你正确地理解和使用这些代码。

    论文研究-求解TSP问题的混合遗传算法.pdf

    标题中提到的“TSP问题”指的是著名的旅行商问题(Traveling Salesman Problem),这是一个典型的组合优化问题。在TSP问题中,旅行商需要访问一系列城市,每个城市只访问一次,并最终回到出发城市,目标是最小化总...

    SOR超松弛迭代算法求解Ax=b方程组MATLAB源码

    该MATLAB文件,以三阶实对称正定的系数矩阵为例,实现了SOR超松弛迭代算法求解方程组数值解。可扩展至任意维数。 【注】 如果发现中文乱码,请在购买后私信我解决。

    粒子群算法求解函数极值 matlab

    粒子群算法 求函数最小值,matlab代码。链接是讲解粒子群算法 ... 我用ubuntu下matlab编写的代码,你在windows下可能有中文乱码,不过都是注释,你可以去博客链接中查看主要代码部分,不影响的

    MSR.rar_msr_msr离线程序_数据库地图_最 地图 短路径 求解_鏈? 鍦板浘 鐭矾寰?姹傝В

    姹傝В**这部分标签可能是由于字符编码问题导致的乱码,原意可能指的是程序支持多种地图数据格式或具有适应不同环境的能力。在开发过程中,程序需要兼容不同的地图数据标准,如GIS(Geographic Information System)...

    (完整word版)一维稳态导热matlab程序求解.doc

    该文档提供的MATLAB程序是用来解决一维稳态导热问题的。...需要注意的是,由于文本中的“上面程序有乱码,附截图一份”,这意味着原始的MATLAB代码可能存在编码问题,需要查看截图以获取准确的程序内容。

    Melexis MLX90316 .PSF求解器Solver序列

    由于提供的内容中存在大量乱码和不完整的句子,这可能是由于OCR扫描错误或者信息损坏所致。在这些条件下,很难给出与“Melexis MLX90316 .PSF求解器Solver序列”有关的精确和详细的知识点。 不过,根据标题和描述的...

    一种求解电力系统无功优化的改进粒子群算法.pdf

    由于提供的【部分内容】中存在大量无法识别的字符及乱码,无法直接提取有效信息。因此,我将基于标题和描述来生成知识点。 标题和描述中提到的关键词是“电力系统无功优化”和“改进粒子群算法”。以下知识点将会...

    研究论文-边界元分析中轴对称问题的计算方法.pdf

    轴对称问题指的是在某个轴向(比如z轴)上,系统的几何结构和物理量分布都相同,只与半径方向有关,与角度无关。此类问题在旋转对称的结构和过程中非常常见,如圆管、压力容器等。在边界元分析中处理轴对称问题,...

    不适定边界问题的广义解

    由于提供的部分内容中出现大量无法识别的字符和乱码,无法直接从这部分内容中提取出有价值的信息。不过,我们可以根据标题和描述...这方面的研究对于理论和应用数学都有重要意义,并可能对工程问题的实际求解提供帮助。

    基于MATLAB_PDEtool的轴对称场分析

    由于提供的部分内容无法理解,且可能是OCR扫描过程中产生的乱码,我将基于标题和描述提供的信息,以及我所掌握的专业知识,生成与“基于MATLAB_PDEtool的轴对称场分析”相关的内容。 首先,轴对称场是指在某个旋转...

    用遗传算法求解旅行商问题及其代码设计.pdf-综合文档

    根据提供的文件信息,我们知道该文档的主题是关于如何使用遗传算法来求解旅行商问题(TSP),并且文档中还包含了与之相关的代码设计。旅行商问题是一类经典的组合优化问题,其目标是寻找一条最短的路径,使旅行商从...

Global site tag (gtag.js) - Google Analytics