Andriod中文乱码问题的解决方案

做项目的过程中,经常会遇到乱码的问题。其实你了解乱码引起的原因的话,那么你就可以快速的定位乱码出现的问题。

所以我们要定位乱码的位置出现的地方,有一定工作经验的人,可以很快的定位出乱码的问题,并且可以给出解决方案。

定位乱码的步骤,其实也就两个步骤:

1.客户端引起的乱码

2.服务器端引起的乱码

只有你分析到这两个临界点的话,相信你可以很快的定位你的乱码出现的原因。

1.客户端乱码定位,首先你要确定服务器端是没什么问题的,然后你才可以定位客户端的乱码。

在这里,我假设你已经确定服务器是没什么乱码问题了。你才可以继续下去定位客户端的乱码原因。因为服务器端一直是乱码问题的话,你post或者get方式提交上去的内容也还是乱码。记住,这里的大前提是:服务器已经不会出现乱码问题,编码格式你可以去问问开发服务器端的同事。

下面我们来定位客户端的乱码的原因:

在你的客户端出现的乱码位置打断点,在代码。我这里用到Eclipse。打完断点DEBUG,走到你要查看的那一行代码,watch一下那个值,比如说我查看的一个变量是"content"。如果是乱码的话,这时你大可以确定就是客户端引起的乱码。当确定客户端出现问题之后,你看看那个地方用到了变量"content"。看看是赋值之前,还是赋值之后出现的乱码问题。

客户端乱码解决的方案:

1.统一编码格式,如果你是android客户端的。开发的IDE是Eclipse的话,将你的项目最好是设置为UTF-8(这里有一个建议:每次做项目的时候,首先将你的工程环境全部设置为utf-8)。当然,如果你之前没设置你的编码格式,这时候是比较棘手一点的。如果你的Eclipse一开始是没什么设置的话,默认是GBK或者ios8859-1。一般要显示正常的话,只能统一编码方式,才不会出现乱码。如果要正常显示中文的话,就要设置特定的编码格式:常见的中文编码格式:UTF-8,
GBK, GB2312这几种。

关于在Eclipse中是怎么设置编码格式,具体百度。

2.如果你的代码统一不了的话,那么你就比较悲剧了。比如你之前没有设置你的工程编码格式,那么你的项目开发到一半了,而且又不是支持中文编码格式的。比如ISO8859-1,那么你只能在出现乱码的都解决一下。这就是我为什在之前建议(每次做项目的时候,首先将你的工程环境全部设置为utf-8)。以后可以省心好多。

new String(content.getBytes(Charset.forName("当前的编码格式")), Charset.forName("目标编码格式"));

new String(content.getBytes(Charset.forName("ISO8859-1")), Charset.forName("UTF-8"));//将ISO8859-1的content字符串转化成UTF-8的格式

上面的是解决字符串出现乱码的问题。

3.网络交互时出现的乱码解决方案

常见我们与网络交互的方式一般都是get或者是post方式。

在客户端的话,我们一般都是要encode一下,然后服务器那端在decode一下就能解决中文乱码问题了。跟服务器开发那端的协商好,那些字段需要decode。

Uri.encode()

2.服务端乱码定位,首先最好是确定服务器端有没什么乱码问题

一般服务器端乱码问题的是比较容易确定的,举个例子,比如我是做andriod客户端开发的。那么与网络交互的时候一般都会提供给我们接口的。那么我们直接用接口去确定接口提交中文有没问题?如果有问题的话,及时与服务器端开发的人协商。确定乱码问题的出现的问题。一般有经验的服务器端开发很快会给你建议,并且跟你说前端要用Uri.encode,,然后他在服务器端decode一下。这样服务端的乱码问题就解决了。然后你在整体测试一下,看看客户端是否会出现乱码问题,如果会出现问题,再跳到客户端乱码定位。

时间: 2024-08-09 05:22:37

Andriod中文乱码问题的解决方案的相关文章

JSP开发过程遇到的中文乱码问题及解决方案

JSP开发过程遇到的中文乱码问题及解决方案 来源:偶my耶的博客 发布时间:2015-03-31 阅读次数:543 8 对于程序猿来说,乱码问题真的很头疼,下面列举几种常见的乱码. 1.数据库编码不一致导致乱码 解决方法: 首先查看数据库编码,输入: show variables like "%char%"; 确认编码一致,如果不一致,可输入: SET character_set_client='utf8'; SET character_set_connection='utf8'; S

vim、gvim在windows下中文乱码的终极解决方案

测试成功,完美解决. 只需修改VIM目录下面的这个文件_vimrc. 加油吧,骚年.很强大的! set encoding=utf-8 set fileencodings=utf-8,chinese,latin-1 if has("win32") set fileencoding=chinese else set fileencoding=utf-8 endif "解决菜单乱码 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/

JSP中文乱码问题终极解决方案(下)

摘要: 本文首先从四个方面给出了在使用JSP过程中可能出现中文乱码的情形,具体包括JSP页面中文乱码.JSP源文件中文乱码.GET 请求的请求参数为中文乱码 和 POST 请求的请求参数为中文乱码四种情形,并针对每种情形给出了相应的终极解决方案. 一. JSP页面与JSP源文件乱码 在介绍JSP页面与JSP源文件的乱码问题前,首先我们必须对JSP页面中文乱码问题与JSP源文件中文乱码问题有一个清晰的概念,即: JSP页面中文乱码问题是指用户在浏览器看到的服务器所返回的jsp页面中,中文字符不能正

JSP中文乱码问题终极解决方案

在介绍方法之前我们首先应该清楚具体的问题有哪些,笔者在本博客当中论述的JSP中文乱码问题有如下几个方面:页面乱码.参数乱码.表单乱码.源文件乱码.下面来逐一解决其中的乱码问题. 一.JSP页面中文乱码 在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码. 先看一个JSP程序: [java] view plaincopyprint? <%@ page language="java" import="java.util.

Mysql中文乱码问题完美解决方案

MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如php)的连线语系设定问题强烈建议使用utf8!!!!utf8可以兼容世界上所有字符!!!!一.避免创建数据库及表出现中文乱码和查看编码方法1.创建数据库的时候:CREATE DATABASE `test`CHARACTER SET 'utf8'COLLATE 'utf8_general_ci';2.建表

[转]Servlet 中文乱码问题及解决方案剖析

一.常识了解 1.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码: 3.getBytes() 是通过平台默认字符集进行编码: 二.中文乱码出现 在学习任何一门技术时,经常会有初学者遇到中文乱码问题,比如MySQL,是因为在安装时没有设置:而在Servlet中,也会遇到中文乱码问题: 比如: OutputStream out = response.

Servlet 中文乱码问题及解决方案剖析

一.常识了解 1.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码: 3.getBytes() 是通过平台默认字符集进行编码: 二.中文乱码出现 在学习任何一门技术时,经常会有初学者遇到中文乱码问题,比如MySQL,是因为在安装时没有设置:而在Servlet中,也会遇到中文乱码问题: 比如: OutputStream out = response.

mysql中文乱码的完美解决方案

问题描述: mysql插入中文时显示为乱码或"?"号 解决方案: 修改mysql的my.ini配置 [mysql] default_character_set=utf8 [mysqld] character_set_server=utf8 //以下内容为测试记录内容,完全可以忽略不读,但为了增加可信度,还是附上了:) show variables like "%char%"; 默认: +--------------------------+-------------

【转】JSP中文乱码问题终极解决方案

文章转自:http://blog.csdn.net/beijiguangyong/article/details/7414247 在介绍方法之前我们首先应该清楚具体的问题有哪些,笔者在本博客当中论述的JSP中文乱码问题有如下几个方面:页面乱码.参数乱码.表单乱码.源文件乱码.下面来逐一解决其中的乱码问题. 一.JSP页面中文乱码 在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码. 先看一个JSP程序: <%@ page language=&qu