文本文件常用编码

1.字符串存入文件中,需要将字符串转化为字节后才能存入 ,存入字节时,字符串需要通过特定的编码规则编码后存入(常用编码规则:GBK(中文平台默认),uft-8,uft-16be)

一个字符串放入文本文件---》可以认为是字符串的序列化

2.从文本中读取字符串也需要相同的编码方式
    从文本文件中读取字符串---》可以认为是字符串的反序列化

 1 import java.io.UnsupportedEncodingException;
 2 import java.util.Arrays;
 3
 4 public class zh {
 5       public static void main(String[] args) {
 6         String aa="ABC我";
 7         //默认编码形式
 8         byte[] b=aa.getBytes();
 9         System.out.println(Arrays.toString(b));
10         for (byte c : b) {
11             System.out.print(Integer.toHexString(c&0xff)+" ");
12         }
13         String string=new String(b);
14
15         System.out.println(string);
16
17         //GBK编码形式
18         System.out.println("========================");
19         try {
20             byte[] v=aa.getBytes("GBK");
21             for (byte c : b) {
22                 System.out.print(Integer.toHexString(c&0xFF)+" ");
23
24             }
25
26             String string1=new String(v,"GBK");
27             System.out.println(string);
28         } catch (Exception e) {
29             e.printStackTrace();
30         }
31         System.out.println(Arrays.toString(b));
32
33         //utf-8编码形式
34         System.out.println("==========================");
35         try {
36             byte[] g=aa.getBytes("utf-8");
37             for (byte c : g) {
38                 System.out.print(Integer.toHexString(c&0xFF)+" ");
39
40             }
41             String string2=new String(g,"utf-8");
42             System.out.print(string2);
43         } catch (Exception e) {
44             // TODO: handle exception
45         }
46     }
47 }

输出结果:

[65, 66, 67, -50, -46]
41 42 43 ce d2 ABC我
========================
41 42 43 ce d2 ABC我
[65, 66, 67, -50, -46]
==========================
41 42 43 e6 88 91 ABC我

时间: 2024-11-05 18:46:43

文本文件常用编码的相关文章

【转】常用编码总结

从网上弄下来的: 1.  ASCII和Ansi编码    字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为     单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码.     双字节内码 -- Double-Byte character sets)(DBCS),可以支持65000个字符编码.前者即为ASCII编码,后者对应ANSI.至于简体中文编码GB2312,实际上它是AN

常用编码学习

常用编码 在计算机世界,所有信息都是用二进制存储.每一个二进制有0和1两种状态. 所以8个二进制就可以组合成256种状态,也就是一个字节. 也就是说,一个字节可以用来表示256种不同的状态,每一个状态对应一个符号,也就是256个符号,从00000000-11111111. ASCII码 一共规定了128个字符的编码,包含大小写字母.数字.还有空格等一些常用符号,这128个符号中有32个不能打印出来的控制符号.只占用了一个字节的后面7位,也就是最前面一位都是0. 大写字母A是65,也就是二进制的0

Atitit.检测文本文件的编码 自动获取文件的中文编码

Atitit.检测文本文件的编码 自动获取文件的中文编码 1 不能使用load来检测编码..1 2 使用convert来检测编码1 3 程序检测文本编码2 3.1 根据utf bom头2 3.2 检测字符 cpdetector2 4 ##实现原理 中文也走十gbk  utf8 unicode三中..只要试达的读取出来,在和汉字map相比..就能基于统计学原理...计算出来..2 1 不能使用load来检测编码.. 要是txt是 gbk的, 使用notepad++ load as utf8 三正常

常用编码测试

1 public static void main(String[] args) { 2 String s = "你好"; 3 String cn = ""; 4 System.out.println("src: " + s); 5 try { 6 7 byte[] bs = s.getBytes("utf-8"); 8 System.out.println(Arrays.toString(bs));; 9 //[-28, -

C#获取文本文件的编码,自动区分GB2312和UTF8

C# 获取文本文件的编码,自动区分GB2312和UTF8 以下是获取文件编码的一个类 using System; using System.IO; using System.Text; /// <summary> /// FileEncoding 的摘要说明 /// </summary> namespace FileEncoding { /// <summary> /// 获取文件的编码格式 /// </summary> public class Encod

java获取常见文本文件的编码 解决乱码问题

乱码问题的产生一般是,由字节流转字符流的时候,读文件的编码与文件的系统编码不一致造成的. 解决方式:先自动判断文件系统编码类型,然后读的时候用这个类型去读就ok了. 自动判断文件系统编码类型代码如下, 地址:http://www.cnblogs.com/java0721/archive/2012/07/21/2602963.html java获取常见文本文件的编码 解决乱码问题

计算机常用编码 (整理的资料)

注意: 编码的基础知识: 1.位      bit 最小的单元    字节  byte  机器语言的单位    换算   1byte=8bits   1kb=1024byte  1MB=1024KB 1GB=1024MB 2.进制  二进制 binary | 八进制 octal |  十进制 decimal |十六进制hex 3.字符:是各种文字和符号的总称,包括各个国家的文字,标点符号,图形符号,数字等.                                             

常用编码简单说明

ascii编码: 这是最早的一种编码,很多其他的编码都会兼容ascii编码,ascii编码只包含常用的英文字母,数字,以及一些特殊字符,还有部分控制字符. 每个字符由占用一个字节的存储空间,因为最多只包含127个字符,而一个字节(8bit)最多可以存256(2^8)个字符,故其最高位都为0. 例如大写英文字母'A'对应的ascii码值为65,用二进制表示就是01000001. gb2312编码: 由于计算机是美国人发明的,在设计编码的时候没有考虑到别国的文字,而ascii编码中是不包含别国的文字

探究Web常用编码

今天呢,小编决定带着6个方面一路探究Web编码. 1.问:为啥要编码? 答:计算机存储信息的最小单位是1字节(bit),然而一个字节最多能表示0-255个符号,但是人类自然语言中的符号又那么多,像汉语.韩语.日语等一个字节怎么能表示的过来,所以必须要有一个新的结构字符来编码. 2.常见的编码格式有哪些? A.ASCII码总共128个,使用一个字节的低7位表示,0-31是控制字符如:换行.回车.删除等:32-126是打印字符,可以通过键盘的输入打印出来.如: System.err.println(