java获取字符串编码,java获取文件的编码方式

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: