Java GBK,UTF-8编码

作者:卿笃军

原文地址:http://blog.csdn.net/qingdujun/article/details/41366301

1、GBK,UTF-8编码

注意:一般默认的是GBK编码。

package io.dol.sn;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class EnCodeStream {

	public static void main(String[] args) throws IOException {

		//WriteGBK();
		WriteUTF_8();
	}
	public static void WriteGBK() throws IOException
	{
		//默认是GBK编码
		OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("gbk.txt"));
		//OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("UTF_8.txt","GBK"));
		//注意,此时产生的gbk.txt文件大小为4字节
		osw.write("海豚");
		osw.close();
	}
	public static void WriteUTF_8() throws IOException
	{
		//默认是GBK编码
		OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("UTF_8.txt"),"UTF-8");
		//注意,此时产生的UTF_8.txt文件大小为6字节
		osw.write("海豚");
		osw.close();
	}
}

2、编码解码

用什么格式编码,就用什么格式解码;编码一次,解码一次。

package io.dol.sn;

import java.io.IOException;
import java.util.Arrays;

public class EnCodeStream {

	public static void main(String[] args) throws IOException {

		String s1 = "海豚";
		//编码:
		//以下一样,因为默认就是GBK编码
		byte[] bGbk1 = s1.getBytes();
		byte[] bGbk2 = s1.getBytes("GBK");
		//Arrays.toString()将字符数组转化为字符串
		System.out.println(Arrays.toString(bGbk1));
		System.out.println(Arrays.toString(bGbk2));
		//解码:
		String s2 = new String(bGbk1);
		String s3 = new String(bGbk2,"GBK");
		//如果用UTF-8解码,则会出现解码格式错误
		//String s4 = new String(bGbk2,"UTF-8");
		System.out.println(s2);
		System.out.println(s3);
		//这里会打印出“????”
		//System.out.println(s4);
	}
}

3、GBK,UTF-8都支持中文编码

有兴趣的可以去试一下:在记事本中写入“联通”二字,保存后再打开会出现什么现象,为什么呢?

原文地址:http://blog.csdn.net/qingdujun/article/details/41366301

参考文献:Java视频 毕向东 主讲

时间: 2024-10-06 00:30:56

Java GBK,UTF-8编码的相关文章

java字符串的各种编码转换

import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ public static final String US_ASCII = "US-ASCII"; /** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */ public static fina

java中文件的编码(在建立text文本时,如果文件中只写联通或是联,再次打开的时候就会出现乱码,下面就是原理)

public class EcodeDemo { public static void main(String[] args) throws Exception { String str = "生活ABC"; // 将字符串序列化 byte[] bytes = str.getBytes(); for (byte b : bytes) { /* * Integer.toHexString的参数是int, 如果不进行&0xff,那么当一个byte会转换成int时, * 由于int是

java转换字符串的编码(转)

package com.Alex.base; import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ public static final String US_ASCII = "US-ASCII"; /** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-

JAVA中BufferedReader设置编码的必要性

实验环境 Myeclipse 默认编码 UTF-8 先看两种读文件的方式: 方式一: InputStreamReader fReader = new InputStreamReader(new FileInputStream(filePathString),"UTF-8"); BufferedReader reader = new BufferedReader(fReader); String line; while ((line = reader.readLine()) != nul

【转载】java字符串的各种编码转换

java字符串的各种编码转换 来自:http://www.blogjava.net/rabbit/archive/2008/03/27/189009.html import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ public static final String US_AS

转:JAVA中各种字符编码类型转换

import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ public static final String US_ASCII = "US-ASCII"; /** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */ public static final

java二维码编码和解析工具类

用到两个jar包: QRCode.jar Qrcodeen.jar package com.banmacoffee.utils; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; imp

java GBK字符转换成为UTF-8编码字符

import java.util.HashMap; import java.util.Map; /** * 创建日期: 2014-04-18 10:36:25 * 作者: 黄飞 * mail:[email protected] [email protected] * ©版权归作者所有 * */ public class ConverFromGBKToUTF8 { public static void main(String[] args) { try { ConverFromGBKToUTF8

java、js的编码、解码

如果在地址栏挂载参数,特别是包含中文,往往要进行编码,取值时再解码,以下是java和js中编码.解码的各自方法. java: @Test public void test3() throws UnsupportedEncodingException{ System.out.println(URLEncoder.encode("我", "UTF-8"));//%E6%88%91 System.out.println(URLDecoder.decode("%E