android 乱码及一些问题

 平台是android2.2.

应用背景,从手机向服务器上传图片。

错误1,开始做从手机本地选择图片时,用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),打开图片。结果老是出错提示我强关应用。看了api,Environment.DIRECTORY_PICTURES指定的目录是

Standard directory in which to place pictures that are available to the user. Note that this is primarily a convention for the top-level public directory, as the media scanner will find and collect pictures in any directory.

即/sdcard/Pictures/ ,后来才知道我手机上没这个目录。到有个image目录,那就写Environment.getExternalStoragePublicDirectory("image"),就没错了。这个与乱码没关系,做下记录。

错误2,从j2ee平台传向android平台时的乱码问题。环境背景是我们以http方式请求action方法,如果你要从action中向android平台返回,比如“保存成功”这四个汉字。然后你在android平台,用Toast.makeText显示出来,弄不好就是乱码。

我的解决方法:在action层用流写时要先用特定的编码写,如下代码

OutputStream os = getResponse().getOutputStream();
String success= new String("上传成功" + fileName);

getResponse().setContentLength(success.getBytes("UTF-8").length);
  os.write(success.getBytes("UTF-8"));

然后在android平台接收时用

   InputStreamReader isr = new InputStreamReader(is, "utf-8");
   BufferedReader br = new BufferedReader(isr);
   String info = br.readLine();

以对应的编码方式读出。

 

错误3,从android平台向j2ee平台传汉字时出现乱码问题。

应用背景,选择一个汉字命名的图片传到j2ee平台,结果在j2ee平台方面收到的文件名是乱码。

我的解决方法:在android平台方向输出流写汉字文件名时,也要先以特定的编码方式编码

DataOutputStream ds = new DataOutputStream(con.getOutputStream());

。。。。。

ds.write(filename.getBytes("UTF-8"));

 

然后在j2ee平台方接收时,再以对应的编码方式读取,当然如果你的平台默认是与你先前编码方式一致的话,可以不用处理。

这些问题,从春节放假最后一天,到今天跨了二年,才得到解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值