`
ztfjava
  • 浏览: 72609 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java读取text乱码

    博客分类:
  • Java
阅读更多
Java读取TXT文本文件乱码解决方案
今天在解析一个文本文件的时候出现了乱码,以前从未遇到,花了点时间解决了,在此总结一下:
首先,先看一下解析的代码:
private String[] getProjectData(File file){
String[] data = null;
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String str = br.readLine();
data = str.split("\t");
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return data;
}
这个方法很简单,就是获取txt文件中的一行数据,然后转换为数组,我这个文本中只有一行。就这种情况下获取到的str是乱码,我想出现乱码肯定是字符集编码的问题,然后自己新建了一个文本文档测试没有问题(开始用的文本时别的程序导出的),所以我估计是开始那个txt文件编码的问题,查看发现是Unicode编码(如何查看txt的编码呢,教你一个笨笨的办法:打开文件——另存为,然后看到最下面的编码,默认选择的就是当前文档的编码格式),问题就出现在这里。问题找到了就好解决了,修改代码为:
private String[] getProjectData(File file){
String[] data = null;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-16"));
String str = br.readLine();
data = str.split("\t");
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return data;
}
使用文件流读取,转换编码为“UTF-16”,这样乱码问题就解决了。
归纳一下:
txt文本文档有四种编码选项:ANSI、Unicode、Unicode big endian、UTF-8;默认应该是ANSI选项,就是系统的默认编码,一般是GBK,这种情况下用第一段代码解析是没有问题的,也不需要转码;其他格式就需要用第二段代码对应转码了,Unicode对应UTF-16,UTF-8就不用说了。
关于获取txt文件编码,我们可能有时候需要用程序获取,动态判断,这里给一点资料,参考参考:
ANSI: 无格式定义
Unicode:  前两个字节为FFFE Unicode文档以0xFFFE开头
Unicode big endian: 前两字节为FEFF
UTF-8: 前两字节为EFBB UTF-8以0xEFBBBF开头
用程序取出前几个字节并进行判断即可。
分享到:
评论

相关推荐

    java读取远程网页乱码解决方案

    总之,解决Java读取远程网页乱码问题的关键在于正确识别和使用网页的字符编码。通过设置请求头、使用特定的API或第三方库,以及处理响应头中的`Content-Type`信息,可以有效地避免乱码问题。同时,编写健壮的代码,...

    彻底解决JAVA读取写入 TXT中文乱码问题 源码

    要解决Java读取TXT文件中文乱码的问题,关键在于指定正确的编码方式。以下是使用`BufferedReader`和`FileReader`读取UTF-8编码的TXT文件的示例: ```java import java.io.BufferedReader; import java.io....

    Java关于中文乱码问题的多种解决方法

    当Java程序读取或写入包含中文字符的文件时,需要设置正确的字符编码。例如,使用`FileReader`和`FileWriter`时,可以通过构造函数传入`Charset`对象,如`new FileReader(file, "UTF-8")`。如果使用`BufferedReader...

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

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

    java中文乱码解决问题

    JAVA 中文乱码解决问题 JAVA 中文乱码问题是开发过程中常见的问题之一,解决这个问题需要了解乱码产生的原因,然后对症下药。下面我们对容易产生乱码问题的场景进行分析,并提出解决方案。 1. 以 POST 方法提交的...

    java插入数据乱码解决集锦

    2. **程序与外部系统交互时编码不匹配**:当Java程序读取或写入数据到数据库、文件或其他系统时,如果没有正确设置字符编码,也可能出现乱码。 #### 二、常见乱码场景及解决方案 1. **JSP页面乱码** - **原因**...

    java编程中乱码问题解决

    3. **文件或数据库存储时编码错误**:当文件或数据库中的数据被读取时,如果使用的编码与实际存储时的编码不符,也会出现乱码现象。 #### 二、解决乱码的方法 针对以上提到的原因,我们可以采取相应的措施来解决...

    javadbf中文乱码

    `text.txt`文件可能是`javadbf`使用示例或说明文档的一部分,里面可能包含了如何正确使用该库来处理中文乱码的代码片段。你可以查阅这个文件以获取更具体的实现细节。 总的来说,处理`javadbf`中的中文乱码问题主要...

    java读取word文档.pdf

    首先,标题“java读取word文档.pdf”和描述“java读取word文档.pdf”暗示了文章内容可能涉及使用Java语言读取Word文档的技术。 从片段中可以提取到的关键技术点包括: 1. Apache POI库:Apache POI是一个开源的...

    解决java所有中文乱码集合

    在Java编程语言中,中文乱码是一个常见的问题,特别是在处理文本输入、输出或者网络传输时。本集合旨在全面解析和解决各种中文乱码问题,帮助开发者有效地理解和应对这类问题。 一、乱码产生的原因 1. 编码与解码...

    Java编程乱码处理方法大全(附图说明)

    在Java编程过程中,乱码问题是一个常见的困扰,尤其是在处理字符编码时。本篇文章将全面解析Java中的乱码处理方法,涵盖纯Java代码、Servlet、JSP以及EJB类的解决方案,帮助开发者有效解决这一问题。 首先,理解...

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

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

    JAVA中文乱码深度分析

    Java使用Unicode作为内部编码,这允许其跨平台兼容性,但同时也引出了中文乱码的问题。当Java程序在不同的操作系统或浏览器上运行时,如果没有正确处理编码转换,就可能导致乱码。 1. 中文问题的来源: - Unicode...

    JAVA 乱码问题集合

    4. **文件读写乱码**:在读取或写入包含非ASCII字符的文件时,必须明确指定文件的编码。例如,使用`BufferedReader`或`FileWriter`时,可以通过`InputStreamReader`和`OutputStreamWriter`指定编码。 5. **JSP/...

    彻底解决中文乱码的问题

    中文乱码问题在Java中的表现多种多样,例如,从文件读取中文数据时显示为乱码,通过HTTP请求接收的中文内容显示异常,或者在控制台上打印中文字符出现乱码等。这些问题的根源在于编码的不统一,比如文件是GBK编码,...

    Java处理乱码

    在IT行业中,尤其是在Java开发中,处理乱码问题是一个常见的挑战。乱码通常指的是字符编码不一致导致的显示错误,这可能发生在文件读写、网络传输、数据库存储等多个环节。本篇文章将深入探讨Java如何处理乱码问题,...

    java读取文件内容的函数

    在Java编程语言中,处理文件是一项常见的任务,尤其是在读取文件内容时。本文将深入探讨一个用于读取文件内容的Java函数,同时分析其工作原理、潜在问题以及如何使用该函数来处理文件数据。 ### 函数定义与解析 ...

    java Web开发乱码解决方案

    ### Java Web 开发中的中文乱码问题及其解决方案 在Java Web开发过程中,中文乱码问题是一种常见的技术难题,尤其在处理客户端与服务器间的数据交互时更为突出。本文将详细介绍Java Web开发中出现乱码的原因,并...

    Java编程中中文乱码问题的研究及解决方案

    Java编程中中文乱码问题是一个常见的困扰开发者的问题,尤其是在Java Web开发环境中。Java语言本身使用Unicode编码,这是一种全球化的标准,确保了各种字符集的兼容性。然而,Unicode编码在与其他系统交互时,如...

Global site tag (gtag.js) - Google Analytics