java文件编码问题

1try {

//eclipse默认当前目录为工程根目录,则new File()中使用的相对路径应该是相对根目录的路径

FileInputStream input=new FileInputStream(new File("bin\\cn\\google\\demo\\data.txt"));

byte[] b=new byte[100];

int len=input.read(b);

//解决乱码问题

//方法一:手动构造String解码

String str=new String(b,0,len,"UTF-8");

System.out.println(str);

//方法二:利用InputStreamReader对象将字节流转换为相应编码的字符流

FileInputStream input=new FileInputStream(new File("bin\\cn\\google\\demo\\data.txt"));

BufferedReader reader=new BufferedReader(new InputStreamReader(input,"UTF-8"));

int a;

while((a=reader.read())!=-1){

System.out.print((char)a);

}

} catch (FileNotFoundException e) {

e.printStackTrace();

}

2、System.out和System.in都是按照平台的默认码表进行编码输出和输入的,使用new String(…..)在参数中设置码表可以解码,使用String的getBytes(….)方法可以对字符进行编码。

3、eclipse中工程的properties更改的编码仅仅是eclipse环境中的码表,即仅仅更改System.in和System.out的编码

时间: 2024-10-07 01:05:15

java文件编码问题的相关文章

Java文件编码自动转换工具类

本篇随笔主要介绍了一个用java语言写的将一个文件编码转换为另一个编码并不改变文件内容的工具类: 通过读取源文件内容,用URLEncoding重新编码解码的方式实现. 1 public class ChangeFileEncoding { 2 public static int fileCount = 0; 3 public static String sourceFileRoot = "替换为要转换的源文件或源目录"; // 将要转换文件所在的根目录 4 public static

Java文件编码示例

将字符串转换为字节数组,使用当前项目的默认编码:String s = "你好ABC";byte[] b1 = s.getBytes(); 以"gbk"格式转换字符串:byte[] b2 = s.getBytes("gbk"); 以"utf-8"格式转换字符串:byte[] b3 = s.getBytes("utf-8"); 以"utf-16be"格式转换字符串,utf-16be是java

解决java文件编码和windows7系统(中文版)默认编码冲突所导致的乱码情况

开篇从一个比较简单但是也比较蛋疼的问题开始吧. 背景介绍:我是新手小白,初学java. 问题介绍:在使用UTF-8编码格式写java文件时,编译出现问题. 原因分析:1.java文件的编码格式是UTF-8,windows7系统(默认编码格式为GBK)上的jdk看不懂了,所以报错了: 2.第一行原本应该是public class的p位置竟然变成了两个奇葩的汉字,导致无法解析. 解决方法: 关于第一个问题:在windows7系统下,新建一个系统变量(计算机图标上右键——属性——左侧“高级系统设置”—

Eclipse文件编码设置的问题

Eclipse中设置编码的方式 如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出, 则最好使 Java文件使用UTF-8编码.然而,Eclipse工作空间(workspace)的缺 省字符编码是操作系统缺省的编码,简体中文操作系统 (Windows XP.Windows 2000简体中文)的缺省编码是GB18030,在此工作空间中 建立的工程编码是GB18030,工程中建立的java文件也是GB18030.如果要使新建立工程 .java文件直接使UTF-8则需要做以下工作:

JAVA之编码---- CSV在文本下是正常的,用EXCEL打开是乱码的问题

JAVA之编码---->CSV在文本下是正常的,用EXCEL打开是乱码的问题 在JAVA下输出文件流,保存成CSV(用UTF-8)文件,怎么处理用EXCEL下是乱码,但是在记事本等其他软件都是正常的,同时显示也是UTF-8的编码,经过测试发现如下结果: 1.EXCEL只能打开ANSI的编码,而ANSI需要当前操作系统是什么编码,就用什么编码.如中文系统下,则只能认识GBK的编码,不可能认识UTF-8的编码,因此网上说的增加16进制下的EF BB BF,根本不是解决之道2.我们知道了EXCEL只能

编译单个java文件

第一步:到jdk的bin目录下:第二步:javac + .java文件所在位置 问题一:编码GBK的不可映射字符,解决.需对.java文件编码后编译 问题二:当指定的.java文件位置含有空格时,提示'javac: 无效的标记:D\jdk'(例如指定路径为D:\jdk 1.8\Test.java) 原文地址:https://www.cnblogs.com/huakaiyoushi/p/11637071.html

java 文件中 定义一个字符串,它的默认编码是什么?

.java 文件的编码就是 String 字符串的编码 File 文件的编码就是 文件内容的编码 request 的设置的编码就是inputstream 的编码 jvm 的默认编码(the default charset of this Java virtual machine)为: import java.nio.charset.Charset; Charset.defaultCharset(); @Test public void charsetTest() { String s0 = "汉

如何判断java.io.File所读取的文件编码

如何判断java.io.File所读取的文件编码 问题 java中涉及到文件读取,就经常要考虑文件编码问题.虽然程序中一般都指定UTF-8编码,但是用户总可能提交各种编码的文件(特别是windows下用户),如果对这些文件不做判断就直接按照UTF-8的方式读取的话,是肯定会乱码的. 解决方案 java原生并不支持文件编码的判断,一般都是read文件的前几个字节来判断,需要自己编写工具类,判断的编码类型也比较少.最近找到了个开源的项目juniversalchardet,能比较优雅的完成这个任务.

java实现文件编码监测(转)

java实现文件编码监测 最近在做一个文档的翻译项目,可文档的编码不知道,听头疼的.尝试了很多方法最后发现JCharDet这个工具可以轻松解决这个问题.于是作此笔记希望日后提醒自己以及帮助又需要的人. package com.uujava.mbfy.test; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExc