`
lxcaoxin
  • 浏览: 127908 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

android中文乱码解决大全

 
阅读更多
1.读取中文文件乱码解决方法
package com.apj.conv;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.widget.TextView;

public class ConverActivity extends Activity {
	
	private TextView textview ;
	
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        textview = (TextView) findViewById(R.id.lrctext);
        
      
		System.out.println("===================convertCodeAndGetText begin=================== ");
	    ///获得SDCard中文件的路径
		String path = Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator ;
	    String tochinese = convertCodeAndGetText(path+"a.txt");
		System.out.println(tochinese);
		System.out.println("===================cconvertCodeAndGetText end===================");
        textview.setText(tochinese);
        
    }
   
	public String convertCodeAndGetText(String str_filepath) {// ת��

		File file = new File(str_filepath);
		BufferedReader reader;
		String text = "";
		try {
		    
			FileInputStream fis = new FileInputStream(file);
			BufferedInputStream in = new BufferedInputStream(fis);
			in.mark(4);
			byte[] first3bytes = new byte[3];
			in.read(first3bytes);
			in.reset();
			if (first3bytes[0] == (byte) 0xEF && first3bytes[1] == (byte) 0xBB
					&& first3bytes[2] == (byte) 0xBF) {// utf-8

				reader = new BufferedReader(new InputStreamReader(in, "utf-8"));

			} else if (first3bytes[0] == (byte) 0xFF
					&& first3bytes[1] == (byte) 0xFE) {

				reader = new BufferedReader(
						new InputStreamReader(in, "unicode"));
			} else if (first3bytes[0] == (byte) 0xFE
					&& first3bytes[1] == (byte) 0xFF) {

				reader = new BufferedReader(new InputStreamReader(in,
						"utf-16be"));
			} else if (first3bytes[0] == (byte) 0xFF
					&& first3bytes[1] == (byte) 0xFF) {

				reader = new BufferedReader(new InputStreamReader(in,
						"utf-16le"));
			} else {

				reader = new BufferedReader(new InputStreamReader(in, "GBK"));
			}
			String str = reader.readLine();

			while (str != null) {
				text = text + str + "\n";
				str = reader.readLine();

			}
			reader.close();

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return text;
	}

}


2. 连接网络读取文件内容中文乱码解决办法
URL myFileUrl = null;   
   myFileUrl = new URL(url);
   HttpURLConnection conn;
   conn = (HttpURLConnection) myFileUrl.openConnection();
   conn.setDoInput(true);
   conn.connect();
   InputStream is = conn.getInputStream();
   BufferedReader br = new BufferedReader(new InputStreamReader(is,
     "GB2312"));
   sb = new StringBuffer();
   String data = "";
   while ((data = br.readLine()) != null) {   
        sb.append(data+"\n");   
   }   
   String result = sb.toString();


3.读取网络文件中文名下载乱码解决办法
1.先在设置服务器编码:找到Tomcat安装目录下的server.xml文件(Tomcat 6.0\conf\server.xml)。设置编码为UTF-8

<Connectorport="8080" URIEncoding="UTF-8" redirectPort="8443" connectionTimeout="20000" protocol="HTTP/1.1"/>

2. android 中代码为:
		try {
			 lrcUrl = "http://192.168.0.214/vote/mp3/" + URLEncoder.encode("中文.mp3","UTF-8");
			} catch (UnsupportedEncodingException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			int result1 = downFile(lrcUrl, "mp3/", "中文.mp3");
/**
	 * 该函数返回整型( -1:代表下载文件出错 ;0:代表下载成功;1:代表文件已存在)
	 **/
	public int downFile(String urlStr, String path, String fileName) {
		InputStream inputStream = null;
		try {
			FileUtils fileUtils = new FileUtils();
			if (fileUtils.isFileExist( fileName,path )) {
				return 1;
			} else {
				inputStream = getInputStreamFromUrl(urlStr);
				File resultFile = fileUtils.write2SDFromInput(path, fileName,
						inputStream);
				if (resultFile == null) {
					return -1;
				}

			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			return -1;
		} finally {
			try {
				inputStream.close();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
		return 0;
	}

	/**
	 * 根据URL得到输入流
	 * 
	 * @param urlStr
	 * @return
	 * @throws MalformedURLException
	 * @throws IOException
	 */

	public InputStream getInputStreamFromUrl(String urlStr)
			throws MalformedURLException, IOException {
		url = new URL(urlStr);
		HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
		InputStream inputStream = urlConn.getInputStream();
		return inputStream;
	}

分享到:
评论

相关推荐

    解决android读取中文乱码 自动判断文档类型并转码

    解决 Android 读取中文乱码自动判断文档类型并转码 Android 读取中文 txt 文件时经常会出现乱码问题,主要是因为文档的编码格式不确定,从而导致读取时出现乱码。为了解决这个问题,我们可以通过自动判断文档类型...

    Android读取中文文件乱码解决方法

    ### Android读取中文文件乱码解决方法 #### 一、问题背景 在开发Android应用时,经常需要处理中文字符或包含中文的文件。如果处理不当,可能会遇到中文乱码的问题,尤其是在读取本地文件或者从网络下载文件时更为...

    ZXing 2.1版GBK中文乱码解决办法

    ZXing 2.1版GBK中文乱码解决办法: zxing中扫瞄二维码图片,如果包含Gbk中文,乱码解决办法是修改DecodedBitStreamParser.h文件,在里面加入GBK的判断。 在2.1版本中,解码的定义不在这个类中了,挪到了...

    java android zip解压缩(解决压缩中文乱码问题)

    本篇文章将深入探讨如何在Android平台上解决Java ZIP库在解压缩中文文件时出现的乱码问题。 首先,我们要明白乱码问题的根源。在文件的压缩和解压缩过程中,文件名通常被编码为字节序列,这个序列取决于原始文件名...

    AndroidThings中文乱码解决Demo

    本文将深入探讨如何在Android Things环境中解决中文乱码的问题,以及提供的Demo的具体实现。 首先,我们要理解Android Things与传统Android系统在处理字符编码上的差异。Android Things基于Android框架,但为了适应...

    android客户端上传数据中文乱码3中解决方案

    android客户端上传数据中文乱码3中解决方案 一种HttpPost两种HTTPURLCONNECTION

    android扫描二维码中文乱码

    要解决"android扫描二维码中文乱码"的问题,我们需要对ZXing库进行一些定制化的修改。在描述中提到,已经有人通过修改ZXing.jar中的解码类来适配GBK编码。这个过程通常包括以下步骤: 1. **解压ZXing.jar**:首先,...

    彻底解决android读取中文txt的乱码(自动判断文档类型并转码

    在Android平台上,开发人员经常遇到一个棘手的问题,那就是如何正确地读取包含中文字符的TXT文件,因为不恰当的处理往往会导致乱码。本文将深入探讨如何彻底解决这一问题,包括自动判断文档编码类型以及进行转码操作...

    Drozer中文乱码解决办法.docx

    Drozer 中文乱码解决办法 Drozer 是一款功能强大的 Android 渗透测试工具,但是在使用时,可能会遇到中文乱码的问题。今天,我们将探讨 Drozer 中文乱码解决办法。 一、问题描述 在使用 Drozer 时,可能会遇到...

    Android客户端发送请求中文乱码问题完美解决

    Android客户端发送请求中文乱码问题完美解决 Android客户端发送请求中文乱码问题是指在Android客户端向服务器端提交请求时出现的中文乱码问题,这是由于在HTTP请求中,中文字符被编码为乱码字符所致。为了解决这个...

    android二维码开发 ZXing(中文乱码已处理)

    本项目针对ZXing进行了优化,特别是解决了中文乱码的问题,使得开发者在处理包含中文字符的二维码时能够更加顺利。以下是关于ZXing二维码开发以及解决中文乱码问题的详细知识点: 1. **ZXing框架概述**: ZXing是...

    ADB中文乱码分析解决

    ### ADB中文乱码分析与解决方案 #### 一、问题背景及原因分析 在使用ADB (Android Debug Bridge)工具进行Android设备调试时,经常会遇到中文显示乱码的问题。这一问题主要由字符编码不一致引起。 - **ADB中的字符...

    Android读取本地json文件的方法(解决显示乱码问题)

    1. **读取本地JSON文件(但显示汉字乱码)** 这个问题通常发生在读取文件时没有正确指定字符编码。在Android中,我们通常使用`AssetManager`来访问应用的资源文件,包括JSON文件。下面的代码展示了如何读取JSON文件...

    android客户端向服务器提交请求的中文乱码问题

    在Android客户端向服务器提交请求时,遇到中文乱码问题是一个常见的困扰。...在本例中,使用`URLEncoder`和`URLDecoder`进行编码和解码,有效地解决了Android客户端与Tomcat服务器之间的中文乱码问题。

    Ubuntu 16.04下安装Android studio中文乱码问题.docx

    完成以上步骤后,你应该能够在Android Studio中正常查看和编辑包含中文字符的文件,Git日志中的中文注释也会正确显示,从而解决了中文乱码问题。 请注意,有些用户可能会遇到字体安装的问题。如果你的系统中没有...

    亲试过可以通过cygwin编译发布cocos2d-x几种中文乱码解决方案

    此文档也是我从几天焦虑中发现可以用的几种解决cocos2d-x中文乱码的方法。亲自试过了。cygwin可以编译过。但是我感觉直接在代码里面写宽字符=L("中文") 似乎不行。自己编译那个iconv好像也难,用jni回调后java转码...

    sqlite数据库存取中文乱码的全部解决方案

    sqlite数据库存取中文乱码的全部解决方案(包括其它数据库oracle+sqlserver+mysql) 数据库的连接方式、数据库里存放数据的字体编码、所选编程语言的缺省字体编码。如果在编程中遇到不能正确显示中文时、、、、

    拦截器解决中文乱码问题

    "拦截器解决中文乱码问题"这个主题,主要关注的是如何通过使用拦截器(Interceptor)这一技术手段来预防或解决乱码现象。拦截器是Spring MVC框架中的一个重要组件,它可以对HTTP请求进行预处理和后处理,从而在数据...

    解决adb传输中文出现乱码的最新版adb.exe文件

    然而,在处理包含中文字符的文件时,adb可能会出现乱码问题,尤其是在Windows系统上,由于Windows默认采用GBK编码,而Android系统通常使用UTF-8编码,这种编码不匹配就会导致中文乱码。 标题提到的"解决adb传输中文...

Global site tag (gtag.js) - Google Analytics