如何将一个用utf-8编码的文本用java程序转换成ANSI编码的文本

jdk有一个关于UTF-8的bug
所以加了一句 br.skip(1);

bugID:

http://bugs.java.com/view_bug.do?bug_id=4508058

 1 public static void main(String[] args) {
 2     StringBuffer buffer=new StringBuffer();
 3     try {
 4         FileInputStream fis=new FileInputStream("test.txt");
 5         InputStreamReader isr=new InputStreamReader(fis,"UTF-8");
 6         BufferedReader br=new BufferedReader(isr);
 7         String line=null;
 8         br.skip(1);
 9         while ((line=br.readLine())!=null) {
10             buffer.append(line);
11             buffer.append("\r\n");
12         }
13         buffer.delete(buffer.length()-2,buffer.length());
14         br.close();
15     } catch (Exception e) {
16         e.printStackTrace();
17     }
18     System.out.println(buffer);
19     try {
20         FileOutputStream fos=new FileOutputStream("test1.txt");
21         OutputStreamWriter osw=new OutputStreamWriter(fos);
22         osw.write(buffer.toString());
23         osw.flush();
24         osw.close();
25     } catch (Exception e) {
26         e.printStackTrace();
27     }
28 }
时间: 2024-10-19 08:31:18

如何将一个用utf-8编码的文本用java程序转换成ANSI编码的文本的相关文章

字符编码--第3章 字符的存储--ANSI编码

第11节 ANSI编码 为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符.比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储. 不同的国家和地区制定了不同的标准,由此产生了 GB2312.GBK.GB18030.Big5.Shift_JIS 等各自的编码标准.这些使用多个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码.在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码:在繁体中文Windo

java字符串的各种编码转换

import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ public static final String US_ASCII = "US-ASCII"; /** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */ public static fina

【转载】java字符串的各种编码转换

java字符串的各种编码转换 来自:http://www.blogjava.net/rabbit/archive/2008/03/27/189009.html import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ public static final String US_AS

(8)java基础知识-字符编码

字符编码 将各种文字.图形.标点.数字整合在一个集合叫做字符集. 把这些字符集按照不用规则进行编码就形成了不同的字符编码. 如 你 用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化:凸起的地方代表数字1,凹的地方代表数字0.硬盘只能用0和1 来表示所有文字.图片等信息.那么字母”A”在硬盘上是如何存储的呢?可能小张计算机存储字母”A”是1100001,而小王存储字母”A”是 11000010,这样双方交换信息时就会误解.比如小张把1100001发送给小王,小王并

【ANSI编码和Unicode编码】

最近在对之前的代码进行优化,主要是把界面全部换成GUI形式的(就是市面上的这种),之前进行数据查询的时候没问题,但是换成GUI的时候,由于输入的的是Unicode编码,而处理的时候又强制转换成ANSI编码,经过一番查阅(刚开始还以为强制转换是万能的....),才发现...看来之前还是低估了它~~~ 以下是相关的介绍 常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包裹),这样对应的就有了两套字符串处理函数,比如:strlen和wcslen,分别用于

java中文件的编码(在建立text文本时,如果文件中只写联通或是联,再次打开的时候就会出现乱码,下面就是原理)

public class EcodeDemo { public static void main(String[] args) throws Exception { String str = "生活ABC"; // 将字符串序列化 byte[] bytes = str.getBytes(); for (byte b : bytes) { /* * Integer.toHexString的参数是int, 如果不进行&0xff,那么当一个byte会转换成int时, * 由于int是

java中文乱码解决之道(三)—–编码详情:伟大的创想—Unicode编码

原文出处:http://cmsblogs.com/?p=1458 随着计算机的发展.普及,世界各国为了适应本国的语言和字符都会自己设计一套自己的编码风格,正是由于这种乱,导致存在很多种编码方式,以至于同一个二进制数字可能会被解释成不同的符号.为了解决这种不兼容的问题,伟大的创想Unicode编码应时而生!! Unicode Unicode又称为统一码.万国码.单一码,它是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言.跨平台进行文本

浅谈java使用指定字符集编码,以及常见的字符集

问题的引入:在InputStreamReader(OutputStreamWriter)的构造方法中,有指定字符集编码,那么什么是字符集?有哪些常用的字符集?怎么用字符集进行编码? 一   什么是字符集? 字符:字符(Char)是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等. 字符集:字符集(Charset)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同. 二  有哪些常用的字符集? 1.ASCII: ASCII(American Standard Code

java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码

随着计算机的发展.普及,世界各国为了适应本国的语言和字符都会自己设计一套自己的编码风格,正是由于这种乱,导致存在很多种编码方式,以至于同一个二进制数字可能会被解释成不同的符号.为了解决这种不兼容的问题,伟大的创想Unicode编码应时而生!! Unicode Unicode又称为统一码.万国码.单一码,它是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言.跨平台进行文本转换.处理的要求.可以想象Unicode作为一个"字符大容器&qu