java txt 编码格式
2012-04-09 22:36
239 查看
首先对java中得编码格式进行了研究。发现在java中
java编码与txt编码对应
java读取txt文件,如果编码格式不匹配,就会出现乱码现象。所以读取txt文件的时候需要设置读取编码。txt文档编码格式都是写在文件头的,在程序中需要先解析文件的编码格式,获得编码格式后,在按此格式读取文件就不会产生乱码了。
这样就获得了txt的编码格式了。
public class EncodingType
{
public static System.Text.Encoding GetType(string FILE_NAME)
{
FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read);
System.Text.Encoding r= GetType(fs);
fs.Close();
return r;
}
public static System.Text.Encoding GetType(FileStream fs)
{
/*byte[] Unicode=new byte[]{0xFF,0xFE};
byte[] UnicodeBIG=new byte[]{0xFE,0xFF};
byte[] UTF8=new byte[]{0xEF,0xBB,0xBF};*/
BinaryReader r = new BinaryReader(fs,System.Text.Encoding.Default);
byte[] ss=r.ReadBytes(3);
r.Close();
//编码类型 Coding=编码类型.ASCII;
if(ss[0]>=0xEF)
{
if(ss[0]==0xEF && ss[1]==0xBB && ss[2]==0xBF)
{
return System.Text.Encoding.UTF8;
}
else if(ss[0]==0xFE && ss[1]==0xFF)
{
return System.Text.Encoding.BigEndianUnicode;
}
else if(ss[0]==0xFF && ss[1]==0xFE)
{
return System.Text.Encoding.Unicode;
}
else
{
return System.Text.Encoding.Default;
}
}
else
{
return System.Text.Encoding.Default;
}
}
}
java | txt |
unicode | unicode big endian |
utf-8 | utf-8 |
utf-16 | unicode |
gb2312 | ANSI |
InputStream inputStream = new FileInputStream("E:/1.txt"); byte[] head = new byte[3]; inputStream.read(head); String code = ""; code = "gb2312"; if (head[0] == -1 && head[1] == -2 ) code = "UTF-16"; if (head[0] == -2 && head[1] == -1 ) code = "Unicode"; if(head[0]==-17 && head[1]==-69 && head[2] ==-65) code = "UTF-8"; System.out.println(code);
这样就获得了txt的编码格式了。
public class EncodingType
{
public static System.Text.Encoding GetType(string FILE_NAME)
{
FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read);
System.Text.Encoding r= GetType(fs);
fs.Close();
return r;
}
public static System.Text.Encoding GetType(FileStream fs)
{
/*byte[] Unicode=new byte[]{0xFF,0xFE};
byte[] UnicodeBIG=new byte[]{0xFE,0xFF};
byte[] UTF8=new byte[]{0xEF,0xBB,0xBF};*/
BinaryReader r = new BinaryReader(fs,System.Text.Encoding.Default);
byte[] ss=r.ReadBytes(3);
r.Close();
//编码类型 Coding=编码类型.ASCII;
if(ss[0]>=0xEF)
{
if(ss[0]==0xEF && ss[1]==0xBB && ss[2]==0xBF)
{
return System.Text.Encoding.UTF8;
}
else if(ss[0]==0xFE && ss[1]==0xFF)
{
return System.Text.Encoding.BigEndianUnicode;
}
else if(ss[0]==0xFF && ss[1]==0xFE)
{
return System.Text.Encoding.Unicode;
}
else
{
return System.Text.Encoding.Default;
}
}
else
{
return System.Text.Encoding.Default;
}
}
}
相关文章推荐
- java 读取任意编码格式的txt文件
- Java 如何控制txt的编码格式
- java生成unicode编码格式的txt文件
- JAVA读取不同编码格式的TXT文件
- Java读取txt文件编码格式
- java 流 写入txt文件, 并且设置txt编码格式
- JAVA读取不同编码的txt文件,java获取txt文件编码格式
- java判断txt文件的编码格式
- java 判断txt文件的编码格式
- 使用java判断TXT文件的编码格式
- java中读取txt文件获得编码格式方法
- java获取txt文件编码格式
- java中获取TXT文件编码格式
- java 生成txt文档 指定编码格式
- 用Java代码将指定目录下的doc文件转化为txt格式文档
- java识别文件编码格式(无三方JAR包)
- Java中使用错误的编码格式导致乱码如何恢复
- java读取判断文件编码格式
- Java如何获取文件编码格式
- 得到txt的编码格式