读取网络TXT文件内容解决中文乱码

本文介绍了一种使用线程和HTTP请求获取服务器版本信息的方法。通过在Android环境中创建新线程,发起网络请求至指定URL,设置连接和读取超时,读取返回的GB2312编码文本,最后将结果发送回主线程更新UI。

 private String getServerVersion(final String urlStr) {

     new Thread(){
         private BufferedReader in;
         private InputStream input;
         private StringBuffer sb;
         @Override
         public void run() {
             super.run();
             //long a = System.currentTimeMillis();
             try {
/*
* 通过URL取得HttpURLConnection 要网络连接成功,需在AndroidMainfest.xml中进行权限配置
* <uses-permission android:name="android.permission.INTERNET" />
*/
                 URL url = new URL(urlStr);
                 HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                 conn.setConnectTimeout(60 * 1000);
                 conn.setReadTimeout(60 * 1000);
                 // 取得inputStream,并进行读取
                 input = conn.getInputStream();
                 in = new BufferedReader(new InputStreamReader(input,"GB2312"));
                 String line = null;
                 sb = new StringBuffer();
                 while ((line = in.readLine()) != null) {
                     sb.append(line);
                 }
                 Message message = new Message();
                 message.obj = sb;
                 handler.sendMessage(message);

             } catch (MalformedURLException e) {
                 e.printStackTrace();

             } catch (IOException e) {
                 e.printStackTrace();
             }finally{
                 try {
                     input.close();
                 } catch (IOException e) {
                     e.printStackTrace();
                 }
             }

         }

     }.start();

     return str;

 }

 

 

 

 

@SuppressLint("HandlerLeak")
private Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);

        StringBuffer stringBuffer= (StringBuffer) msg.obj;
        String s = stringBuffer.toString();
        mTitle.setText(s);
    }
};

moto-txt4.0操作说明: 菜单界面中键位 上下键-进行菜单循环 左键-取消当前操作(返回上一级) 右键-确定当前选择 中键-调出操作菜单(或者确定) *键-关闭(打开)背景灯 文件阅读界面中使用手机数字键进行操作 2键向上滚屏(摇杆上) 长按2键快速向上滚屏 8键向下滚屏(摇杆下) 长按8键快速向下滚屏 4键向上翻页(摇杆左) 长按4键快速向上翻 6键向下翻页(摇杆右) 长按6键快速向下翻 7键返回目录浏览界面(或者通话键) 9键添加书签 1键查看当前时间 0键进行自动滚屏设置 *键关闭背景灯 #键反转当前颜色设置 当2分钟内没进行任何操作时自动关闭背景灯 motorola手机安装说明下载解压后得到moto.jar moto.jad两个文件,然后使用软件 MotoMidMan安装即可! 注意:motorola手机必须使用MotoMidMan这个软件来进行安装moto-txt,否则将会无法使用!!! 在此鸣谢dwALX朋友制作了MotoMidMan这么优秀的java安装软件!感谢chinawrc汉化了这个软件! E2手机的安装方法 A1200手机的安装方法和E2一样 E680 E680I A780安装方法 motorola手机终极安装方法:(此方法几乎支持所有motorola手机) 点击下载j2me_domain_registry.rar文件,解压后将j2me_domain_registry.sm覆盖到你的手机的 a/mobile/certs/root/x509/kjava/ 文件夹下,然后重启手机,正常安装moto-txt即可。 NOKIA索爱 手机安装说明 1.解压缩包后得到moto.jar moto.jad 二个文件; 2.用各品牌手机安装JAVA软件的方法正常安装软件。 NOKIA手机设置: 第一步:和装普通的JAVA一样先装在手机上 第二步:在MOTO-TXT软件的"应用软件接入"里的"手机接入"里的"增加和编辑数据"里由“不允许”改选为“每次询问",然后打开MOTO-TXT访问目录时会提示,你就按确定就可以访问目录了.   重要说明: 因为触摸屏手机没有数字键盘,许多moto-txt的阅读操作是需要数字键盘才能完成的,所以MOTO-TXT为触摸屏手机设计了一个模拟数字键盘,以此来保持moto-txt的按键操作风格。 触摸屏手机调用模拟数字键盘的方法:在阅读界面中点击触摸屏任意位置调出模拟键盘,再次点击触摸屏空白处关闭模拟键盘! 阅读繁体中文的文本文件时,请将文本文件的编码更改为UNICODE,MOTO-TXT就可以完美的支持了!!! 常见问题解答: 安装MOTO-TXT后看不见文件列表?答:如果你的是motorola的手机,那就是你没有进行java软件访问手机文件系统的授权操作,大部分的motorola手机可以使用MotoMidMan这个软件进行授权,具体如何使用MotoMidMan,请在百度上搜搜就知道了!! MOTO-TXT支持motorola V3i手机吗?答:V3i可以使用moto-txt3.10,安装方法见网站的“安装方法”页面中的“motorola手机终极安装方法"。 为什么我在MOTO-TXT中修改了字号的大小,但却没有什么用?答:因为你的手机只有一种字号的字库,所有MOTO-TXT中修改字体大小的功能无法使用! 为什么有许多字MOTO-TXT无法显示?答:因为有许多汉字并没有包含在GB2312编码标准中,所以如果你看的TXT文件的编码是GB2312,就有汉字可能无法显示。解决办法为:在电脑中用记事本打开TXT文件,选择另存为菜单,在编码选项中选择为Unicode编码就一且正常了。MOTO-TXT对Unicode编码的支持是最好的!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想不上班

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值