java获取字符串编码,java获取文件的编码方式
一、认识字符编码:
1、Java中线的默认编码为格式八号,可以使用以下语句获取:字符集。默认字符集();
2、Windows操作系统下,文本文件的默认编码为ANSI,对中文Windows操作系统操作系统来说即为GBK。例如我们使用记事本程序新建一个文本文档,其默认字符编码即为安西。
3、正文文本文档有四种编码选项:ANSI、Unicode(含Unicode Big Endian和统一码小端)、UTF-8、UTF-16
4、因此我们读取文本文件(文本文件)文件可能有时候并不知道其编码格式,所以需要用程序动态判断获取文本文件(文本文件)文件编码。
ANSI:无格式定义,对中文操作系统为商业版或GB2312
UTF-8:前三个字节为:0xE59B9E(UTF-8)、0xEFBBBF(UTF-8含BOM)
UTF-16:前两字节为:0xFEFF
Unicode:前两个字节为:0xFFFE
例如:Unicode文档以0xFFFE开头,用程序取出前几个字节并进行判断即可。
5、Java编码与文本文本编码对应关系:
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
爪哇读取文本文件,如果编码格式不匹配,就会出现乱码现象。所以读取文本文件的时候需要设置正确字符编码100 .文本文档编码格式都是写在文件头的,在程序中需要先解析文件的编码格式,获得编码格式后,再以此格式读取文件就不会产生乱码了。
免费在线视频教程推荐:java学习
二、举个例子:
有一个文本文件:test.txt
测试代码:
/**
* 文件名:CharsetCodeTest.java
* 功能描述:文件字符编码测试
*/
导入Java。io。*;
公共类CharsetCodeTest {
公共静态void main(String[] args)引发异常{
String filePath= test.txt
string content=read txt(文件路径);
System.out.println(内容);
}
公共静态字符串readTxt(字符串路径){
StringBuilder content=new StringBuilder(" ");
尝试{
string file charset name=getfile charset name(path);
System.out.println(文件的编码格式为: fileCharsetName);
InputStream is=新文件InputStream(路径);
InputStreamReader ISR=new InputStreamReader(is,文件字符集名称);
BufferedReader br=新缓冲阅读器(ISR);
string str=
布尔isFirst=真
while (null!=(str=br。readline()){
如果(!isFirst)
内容。追加(系统。行分隔符());
//系统。getproperty(行。分隔符’);
其他
isFirst=false
内容。append(字符串);
}
br。close();
} catch(异常e) {
e。printstacktrace();
System.err.println(读取文件:路径失败!);
}
返回内容。tostring();
}
公共静态字符串getFileCharsetName(字符串文件名)引发IOException {
输入流输入流=新文件输入流(文件名);
字节[]头=新字节[3];
inputStream.read(头);
字符串charset name= GBK ;//或GB2312,即美国国家标准学会
if(head[0]==-1 head[1]==-2)//0x fffe
charset name= UTF-16 ;
else if(head[0]==-2 head[1]==-1)//0x feff
charsetName= Unicode//包含两种编码格式:加州大学S2分校-大端字节序和UCS 2-小尾序
else if(head[0]==-27 head[1]==-101 head[2]==-98)
charset name= UTF-8 ;//UTF-8(不含BOM)
else if(head[0]==-17 head[1]==-69 head[2]==-65)
charset name= UTF-8 ;//UTF-8-BOM
输入流。close();
//System.out.println(代码);
返回字符集名
}
}运行结果:
相关文章教程推荐:java入门学习以上就是爪哇岛实现获取文本文件的字符编码的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。