‘壹’ android 使用volley时怎样改变参数的encode编码
IE、Firefox、Opera三种浏览器对URL的传输的处理各不相同,浏览器在传输URl时得对URL进行编码,IE默认是以UTF-8来传输的,Opera可能也是以UTF-8编码的,Firefox经过测试肯定不是以UTF-8来编码的,有可能是以ISO-8859-1来编码的。所以如果不对中文进行处理,那么中文字符经各个浏览器以自己的编码方式传输到服务器后就出现了各种编码方式,而服务器却只能以一种编码方式来对接收到的URL进行解码。这样的话,和服务器使用的编码方式一样的浏览器在使用带中文的URl时不会出现问题,其他的浏览器则会出现问题。
所以解决的办法就是在URL进行传输之前对其中的中文进行编码,使用的编码是和服务器一样的编码,假设服务器使用的编码是UTF-8,则编码语句如下:URLEncoder.encode("中文","UTF-8")。这样对中文进行编码后所有的浏览器都不会再用他们默认的编码方式对中文进行编码,因为此时浏览器看到的已经不是中文了,而是编码后的字节码。这样就避开了浏览器传输URL时编码的差异性问题。
对中文参数问题的解决方式和上面一样。但这里所指的中文参数是指以?name="中文参数"方式附在URL后,以get方法传输到服务器的这种形式,并不是以表单形式提交到服务器的。各浏览器对中文参数的处理方式和各自对URL中中文的处理方式都不相同,各浏览器之间也有差异,有的在传输之前不进行编码,有的在传输之前就已经进行了编码,情形非常复杂。
但是我们以不变应万变,都用URLEncoder.encode("中文","UTF-8")对中文参数进行编码,这样不管各浏览器怎样对中文参数进行处理,此时经过我们编码后的中文对浏览器来说就是字节码,与a、b、c等字母没有什么区别。但是服务器会用UTF-8编码形式来还原中文参数。
总结一下:以Tomcat服务器为例,在中添加URIEncoding="UTF-8",设置tomcat以utf-8的编码方式来处理URL。其次,对URL中的中文和中文参数都用URLEncoder.encode("中文","UTF-8")进行编码。
再有,就是在后台进行转码。
点击后打开新页面,用户登录!用户名为中文时,火狐、google浏览器无问题,但IE有乱码问题:
问题代码:
java代码
<a href="member!sysLogin.do?name='${member.uname }'" target="_blank" />登录</a>
超链接形式的传参,都是Get方式!
Java代码
public String sysLogin(){
try{
name=new String(name.getBytes("iso-8859-1"),"utf-8");
int r = this.memberManager.loginbysys(name);
if(r==1){
return "syslogin";
}
this.msgs.add("登录失败");
}catch(RuntimeException e){
this.msgs.add(e.getMessage());
} catch (UnsupportedEncodingException e) {
this.msgs.add(e.getMessage());
}
return this.MESSAGE;
}
修改成功:
Java代码
<a href="javascript:toSysLogin('${member.uname }');" />登录</a>
function toSysLogin(name){
var uriname="member!sysLogin.do?name="+name;
window.open( encodeURI(uriname));
}
‘贰’ 求一款安卓手机上用的可以把一些常见格式的视频转换成mp4的软件。比如flv……最好中文!好评!!
你好!安卓手机上最好用的播放器是mx player ,可以选择软解进行解码,不必要再去转码
‘叁’ android(java) newString(bytes,"utf-8")依旧是中文乱码
String str=new String(value.getBytes("ISO-8859-1"), "UTF-8");
‘肆’ android eclipse乱码怎么解决
android开发,在Eclipse下的工程开发出现乱码解决方法:(推荐:eclipse使用教程)
1、进入自己的工程目录,进入到java文件的目录。
2、enca * //用来查看所有文件的编码格式,找到自己需要进行转码的文件。
3、对想要的文件进行编码。这里我的BTDevice.java是GB2312的编码格式,在UTF-8下看中文是乱码。所以对BTDevice.java文件进行转码处理:
iconv -f gb2312 -t utf8 BTDevice.java > BTDevice.java.utf8
4、将转码后的文件复制到源文件里。
cp -av BTDevice.java.utf8 BTDevice.java
5、这样就完成了转码工作。BTDevice.java.utf8这个文件就可以删掉了。在Eclipse下执行一下refresh就可以看到中文乱码已经解决了。
更多python知识请关注python视频教程。
‘伍’ 求助:Android客户端上传文件到Tomcat服务器,中文文件名时出现乱码!!
首先,文件上传,form表单中,method要设置为post,还有,enctype要设置为multipart/form-data,还有就是页面编码要设置为utf-8
然后,你修改了server.xml,把编码设置为了utf-8,那么你的转码方法String fileNameutf=new String(fullFileName.getBytes("ISO-8859-1"),"utf-8");是没有用的,因为你server已经设置过了
‘陆’ 手机安卓版格式转换器,那个好用介绍一下
点击“视频转码”功能。
‘柒’ 如何解决Android WebView出现的乱码问题
1、webView.loadUrl();
直接显示网页内容(单独显示网络图片),一般不会出现乱码。
2、webView.loadData(data, "text/html", "UTF-8");
loadData主要被设计用来装载URI格式的数据,它不能通过网络来加载内容。网上流传的webview加载中文出现乱码,多数是使用此方法。使用过程中主要有两个问题:
(1)loadData不能加载图片内容,如果想加载图片内容或者获得更强大的Web支持建议使用更强大的loadDataWithBaseURL.
(2) 许多实用loadData方法的朋友都遇到显示乱码的问题,那是因为编码器设置错误导致的。我们知道String类型的数据主要是unicode编码,而WebView一般为了节省资源使用的是UTF-8编码,所以我们在loadData的时候要告诉方法怎样转码。即要告诉它要将unicode编码的内容转成UTF-8编码的内容。有些朋友虽然在loadData的时候设置了编码方式,但是还是显示乱码,这是因为还需要为WebView的text编码指定编码方式。举例如下:
WebView wv = (WebView)findViewById(R.id.webview) ;
wv.getSettings().setDefaultTextEncodingName(“UTF -8”) ;
wv.loadData(content, “text/html”, “UTF-8”) ;
注意为gb2312或gbk
(3).网页说明编码格式
以上两种方法是网上给的比较好的方法,但是我都试了下都没有解决我的乱码问题。 原来我是用LoadData方法来解析html的,但是据说这是官方的一个BUG,不能用来解析中文。所以绕其道而行之,采用loadDataWithBaseURL的方法,其中codeingType设置为utf-8就OK了。3、loadDataWithBaseURL如果单纯显示文字的话可以写webView.loadDataWithBaseURL(null, string, "text/html", "utf-8", null);
如果要显示图片可以写webView.loadDataWithBaseURL(baseUrl, string, "text/html", "utf-8", null);
其中baseUrl为你存储照片的路径,比如:
‘捌’ android txt阅读器怎么样实现转码的大致的流程
InputStream is = Activity.getAssets().open(”txt文件名");// 文件输入流
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
int value = 0;
try {
while ((value = is.read()) != -1) {
if (value != '\n' && value != '\r') {
bytes.write(value);
} else if (bytes.size() > 0) {
String str = new String(bytes.toByteArray(), "UTF-8");
String[] params = T.splitString(str, " ");
bytes.reset();
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
‘玖’ 如何将编码为UTF-16LE的文本在文本编码为UTF-8的安卓手机正常显示出来
如果只是转换ascill字符,转换到utf8是一样的.如果转换到utf16即unicode,这个是宽字节编码,asicll和中文即gb编码,算多字节编码,即需要直接调用vs的api函数MultiByteToWideChar,多字节转宽字节函数来实现
‘拾’ android 接收url的json数据 中文转码
服务器端:
StringencodeStr=URLEncoder.encode("中国","utf-8");
System.out.println("处理后:"+encodeStr);
//处理后:%E4%B8%AD%E5%9B%BD
客户端:
StringdecodeStr=URLDecoder.decode(encodeStr,"utf-8");
System.out.println("解码:"+decodeStr);
//解码:中国