- 浏览: 148923 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (110)
- CoreJava (18)
- 待解决 (1)
- 数据结构 (3)
- 科普 (2)
- 网站 (1)
- DataBase (8)
- Access (1)
- Asp (1)
- JSP (1)
- 操作系统 (8)
- Tech (1)
- Linux (11)
- Career (5)
- MongoDB (1)
- Embedded (1)
- JavaScript (1)
- UltraIso (1)
- Linux命令 (1)
- DesignPattern (1)
- Ruby (13)
- Vim (1)
- 自考 (2)
- Github (5)
- zrProject (1)
- Emacs (4)
- Math (3)
- Ajax (1)
- 没看懂 (1)
- HTML (1)
- Philosophy (1)
- 软件 (1)
- 面试 (1)
- 考试报名 (3)
- Regex (1)
- 日语 (1)
- 生活 (1)
最新评论
折磨了一天的问题,终于在黄昏的时候解决了,现在一吐为快。
众所周知,java的中文问题一直是一个老大难的问题,这个现象可以在csdn中java论坛里关于中文乱码的提问率就可以了解到,甚至软件巨人IBM专门开辟了一个解决中文问题的专区,作为一个俗人(一直梦想希望想金凯利那样成为一个“冒牌天神”,只是一直没有成功,也许是因为上帝不照顾中国吧),我也为同意的问题困扰,好在今天解决了。
随着我对.net平台的彻底放弃(只是生活所迫,毕竟我还要生活),将原有的资源转到Java平台上来是我当前的一个重要任务之一,说到这里,不得不承认.net对中文问题解决的很好,虽然偶尔也会出现乱码。
问题是这样的,我的box(http://www.ibeyond.org/box/)原来是使用asp.net写的(当时只是为了尝试新的技术),当时为了数据的可移植性我放弃了使用数据库,将全部数据保存为UTF-8编码的文本文件,在.net中读取这种文件秩序只要指定打开文件的编码方式,中文问题就可以避免。但是按照我以前的思维,java中不是这么作的,java中都是先读取后转换的,最后的结果证明我错了,看来经验主意害死人呀。
File f=new File((new BoxConfig()).getBaseDir()+"Data\\"+request.getParameter("ID")+".inc");
BufferedReader reader = new BufferedReader(new FileReader(f));
String line;
while((line=reader.readLine())!=null){
strContent+=line;
}
这是我最初的代码f就是我要读取的UTF-8格式的文本文件,这一天中经过了无数次的尝试,包括new String(strContent.getBytes("UTF-8"))(其中尝试了N种编码转换),System.setProperty("file.encoding","UTF-8")(其中指定了N种编码转换),都失败了,其中甘苦相信各位经历过被程序折磨的各位看官都有所了解,在此略过。终于在Google中无数次查询中得到了一个后来被证明很重要的一条信息“读取文件时指定字符编码”,一语点醒梦中人,.net中不就是这么实现的吗?走了一圈弯路终于解决了这个问题。
File f = new File("E:\\eclipse\\workspace\\box\\Data\\2003-3-7-100.inc");
InputStreamReader read = new InputStreamReader (new FileInputStream(f),"UTF-8");
BufferedReader reader=new BufferedReader(read);
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
通过打开文件是指定文件编码的方法把这个问题轻松的解决了。
最后总结一下:java要读取数据流的时候一定要指定数据流的编码方式(至少读取String流的时候要这么作。
你也许可以通过Http://www.ibeyond.org/得到相关信息,你也可以通过csdn@ibeyond.org和我联系。
本文的版权归iBeyond所有,转载时请注明转载出处。
发表评论
-
利用反射实现ORM
2012-03-28 13:37 987http://royzhou1985.iteye.com ... -
Eclipse插件安装
2012-03-28 09:29 908装载:http://gooss.org/are-two- ... -
Date & Calendar 类的使用
2012-03-27 14:19 666Java 语言的Calendar(日历),Date(日期 ... -
打jar包
2012-02-04 17:12 749其实JAR文件的格式是ZIP ... -
JavaBean - Bound属性
2012-02-04 15:54 10004.4.3 Bound属性 Bound属性表示当该种 ... -
怎样在程序里获得一个空指针?
2012-01-28 15:56 6706.2 怎样在程序里获 ... -
制作可执行的Jar包
2012-01-22 16:35 738通常有两种,一种是制 ... -
Thread Local
2012-01-22 10:28 756What is Thread Local? Threa ... -
Jni介绍
2011-10-26 19:33 590http://baike.baidu.com/view/127 ... -
获取外网IP地址
2011-10-26 18:47 905访问 http://checkip.dyndns.org/ -
this 与 getSource() 细节
2011-10-14 19:33 703一个对象实例化之后,在它的方法体中出现的this就是指自身。a ... -
static变量生存周期
2011-10-13 22:38 934标准规定static变量保证在第一次使用前初始化,但是并不保证 ... -
String 引用类型与基本类型区别
2011-10-13 22:20 811String a="A"; Stri ... -
为什么会有serialVersionUID
2011-10-13 21:17 624java文件中为什么会有s ... -
抽象类与接口的区别
2011-10-09 11:30 550首先,我们来看一下抽象类的概念,java编程思想中说“万物皆对 ... -
transient用法
2011-09-19 11:16 805Java的serialization提供了一种持久化对象实例的 ... -
例1.1 TextFileTest
2011-07-06 23:19 669package SectionIO; import java ...
相关推荐
- 解决Java处理CSV文件时的中文乱码问题,关键在于正确指定字符编码。 - 要注意文件的读取、写入以及处理过程中的编码一致性。 - 使用专门的CSV处理库能简化操作,并提供更好的兼容性。 - 对于复杂情况,了解并...
在Java编程中,判断文件编码格式是一项常见的任务,特别是在处理包含多国语言或者用户自定义内容的文件时。本文将探讨如何使用Java进行文件编码格式的识别,主要介绍两种方法:一种是简单的UTF-8判断,另一种是使用...
本工程用于研究如何使用Java代码获取文件、文件流或字符串的编码方式 本工程编码方式:UTF-8 开发工具:MyEclipse 参考博客:http://blog.csdn.net/gaohuanjie/article/details/43735891
需要注意的是,在处理文件读写时,字符编码的问题也很重要。在上述代码中,虽然没有明确指出使用的字符编码,但在实际应用中应考虑使用合适的字符集(如UTF-8),以避免乱码等问题的发生。 通过以上分析可以看出,...
在Java中,`java.nio.charset.Charset`类用于表示字符编码,但默认情况下,Java文件读取操作通常假设文件为UTF-8编码。对于其他编码,我们需要借助第三方库如`jcconf`或`ICU4J`来检测编码。 ```java import ...
在Java编程中,读取...总结来说,Java中读取服务器上的UTF-8 BOM文件,需要正确设置字符编码,检测并处理BOM,同时注意异常处理和资源释放。通过掌握这些知识点,开发者可以编写出稳定、高效的代码来处理这类问题。
然而,在Java中读取和写入csv文件时,中文字符如果不正确地处理,可能会出现乱码的情况。下面我们将详细介绍Java避免UTF-8的csv文件打开中文出现乱码的方法。 首先,需要了解UTF-8和UTF-16LE这两种编码格式。UTF-8...
根据给定的文件信息,我们可以总结出一系列关于Java中读取文件的方法,这些方法涵盖了不同层次的数据读取,包括字节、字符以及行级别的读取。以下是对这些知识点的详细阐述: ### Java读取文件方法大全:读取File流...
在Java编程中,读取包含中文字符的文件时可能会遇到乱码问题,这通常是由于编码格式不匹配导致的。要解决这个问题,我们需要理解文件的原始编码格式,并在Java代码中正确地设置字符集。以下是一些相关的知识点: 1....
在某些情况下,BOM可能会引起问题,例如在读取文本文件时,可能会导致额外的乱码字符出现在文件的开头。本文将深入探讨如何使用Java来处理带有BOM的UTF-8文件。 首先,`UnicodeInputStream`和`UnicodeReader`是Java...
综上所述,Java乱码问题主要是由字符编码不一致造成的。通过上述方法,我们可以有效地解决这类问题。需要注意的是,在实际开发中,为了减少类似问题的发生,建议始终使用统一的编码格式(如UTF-8),并在项目中明确...
1. **UTF-8**:一种可变长度的字符编码,适用于所有Unicode字符,它通过使用一种巧妙的方案来表示各种字符,使得常见的ASCII字符集可以用单字节表示。 2. **GBK**:全称《汉字内码扩展规范》,是中华人民共和国国家...
例如,读取文本文件时,应使用`InputStreamReader`和合适的编码参数,如`new InputStreamReader(new FileInputStream(file), "UTF-8")`。 总结,理解并正确处理Java中的字符编码问题,需要关注整个数据流程,从...
2. 用 eclipse 编译和运行 JAVA 文件时,需要指定正确的字符编码类型。 3. 在输出字符时,需要使用正确的字符编码方式来输出字符数据。 四、结论 JAVA 中文字符编码问题是一个复杂的问题,但了解其机理和解决方案...
在Java编程语言中,统计指定文件中的字符个数是一项常见的任务,这主要涉及到文件I/O操作和字符流处理。下面将详细讲解如何实现这个功能,以及相关的重要知识点。 首先,要进行文件I/O操作,Java提供了`java.io`包...
这样可以处理字符编码问题,例如UTF-8。以下是如何按字符读取文件的例子: ```java Reader reader = new InputStreamReader(new FileInputStream(fileName)); int tempchar; while ((tempchar = reader.read())...
这种技术在处理非UTF-8编码的文件时非常关键,因为如果没有正确识别源编码,直接读取可能会导致乱码。 其次,`FileCharsetDetector.java`很可能是实现文件编码检测和转换的Java源代码文件。在这个类中,开发者可能...
- **字符输入流**:用于读取字符数据。 - **字符输出流**:用于写出字符数据。 字符流的主要基类为`java.io.Reader`和`java.io.Writer`。其中: - `java.io.Reader`类是所有字符输入流的父类。 - `java.io.Writer`...
在深入探讨 Java 字符编码的问题之前,我们先来了解一下字符编码的基本概念。字符编码是计算机内部表示字符的一种方式,它涉及到如何将人类可读的文字转换为二进制形式以便计算机处理。 #### 二、Java中的字符串与...