`
yaerfeng1989
  • 浏览: 233172 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

分享万能java字符串编码转换工具类

阅读更多

代码下载地址:http://www.zuidaima.com/share/1795356301560832.htm

原文:分享万能java字符串编码转换工具类

package com.zuidaima.util;

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 String ISO_8859_1 = "ISO-8859-1";

	/** 8 位 UCS 转换格式 */
	public static final String UTF_8 = "UTF-8";

	/** 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序 */
	public static final String UTF_16BE = "UTF-16BE";

	/** 16 位 UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序 */
	public static final String UTF_16LE = "UTF-16LE";

	/** 16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识 */
	public static final String UTF_16 = "UTF-16";

	/** 中文超大字符集 */
	public static final String GBK = "GBK";

	/**
	 * 将字符编码转换成US-ASCII码
	 */
	public String toASCII(String str) throws UnsupportedEncodingException {
		return this.changeCharset(str, US_ASCII);
	}

	/**
	 * 将字符编码转换成ISO-8859-1码
	 */
	public String toISO_8859_1(String str) throws UnsupportedEncodingException {
		return this.changeCharset(str, ISO_8859_1);
	}

	/**
	 * 将字符编码转换成UTF-8码
	 */
	public String toUTF_8(String str) throws UnsupportedEncodingException {
		return this.changeCharset(str, UTF_8);
	}

	/**
	 * 将字符编码转换成UTF-16BE码
	 */
	public String toUTF_16BE(String str) throws UnsupportedEncodingException {
		return this.changeCharset(str, UTF_16BE);
	}

	/**
	 * 将字符编码转换成UTF-16LE码
	 */
	public String toUTF_16LE(String str) throws UnsupportedEncodingException {
		return this.changeCharset(str, UTF_16LE);
	}

	/**
	 * 将字符编码转换成UTF-16码
	 */
	public String toUTF_16(String str) throws UnsupportedEncodingException {
		return this.changeCharset(str, UTF_16);
	}

	/**
	 * 将字符编码转换成GBK码
	 */
	public String toGBK(String str) throws UnsupportedEncodingException {
		return this.changeCharset(str, GBK);
	}

	/**
	 * 字符串编码转换的实现方法
	 * 
	 * @param str
	 *            待转换编码的字符串
	 * @param newCharset
	 *            目标编码
	 * @return
	 * @throws UnsupportedEncodingException
	 */
	public String changeCharset(String str, String newCharset)
			throws UnsupportedEncodingException {
		if (str != null) {
			// 用默认字符编码解码字符串。
			byte[] bs = str.getBytes();
			// 用新的字符编码生成字符串
			return new String(bs, newCharset);
		}
		return null;
	}

	/**
	 * 字符串编码转换的实现方法
	 * 
	 * @param str
	 *            待转换编码的字符串
	 * @param oldCharset
	 *            原编码
	 * @param newCharset
	 *            目标编码
	 * @return
	 * @throws UnsupportedEncodingException
	 */
	public String changeCharset(String str, String oldCharset, String newCharset)
			throws UnsupportedEncodingException {
		if (str != null) {
			// 用旧的字符编码解码字符串。解码可能会出现异常。
			byte[] bs = str.getBytes(oldCharset);
			// 用新的字符编码生成字符串
			return new String(bs, newCharset);
		}
		return null;
	}

	public static void main(String[] args) throws UnsupportedEncodingException {
		ChangeCharset test = new ChangeCharset();
		String str = "This is a 中文的 String!";
		System.out.println("str: " + str);
		String gbk = test.toGBK(str);
		System.out.println("转换成GBK码: " + gbk);
		System.out.println();
		String ascii = test.toASCII(str);
		System.out.println("转换成US-ASCII码: " + ascii);
		gbk = test.changeCharset(ascii, ChangeCharset.US_ASCII,
				ChangeCharset.GBK);
		System.out.println("再把ASCII码的字符串转换成GBK码: " + gbk);
		System.out.println();
		String iso88591 = test.toISO_8859_1(str);
		System.out.println("转换成ISO-8859-1码: " + iso88591);
		gbk = test.changeCharset(iso88591, ChangeCharset.ISO_8859_1,
				ChangeCharset.GBK);
		System.out.println("再把ISO-8859-1码的字符串转换成GBK码: " + gbk);
		System.out.println();
		String utf8 = test.toUTF_8(str);
		System.out.println("转换成UTF-8码: " + utf8);
		gbk = test.changeCharset(utf8, ChangeCharset.UTF_8, ChangeCharset.GBK);
		System.out.println("再把UTF-8码的字符串转换成GBK码: " + gbk);
		System.out.println();
		String utf16be = test.toUTF_16BE(str);
		System.out.println("转换成UTF-16BE码:" + utf16be);
		gbk = test.changeCharset(utf16be, ChangeCharset.UTF_16BE,
				ChangeCharset.GBK);
		System.out.println("再把UTF-16BE码的字符串转换成GBK码: " + gbk);
		System.out.println();
		String utf16le = test.toUTF_16LE(str);
		System.out.println("转换成UTF-16LE码:" + utf16le);
		gbk = test.changeCharset(utf16le, ChangeCharset.UTF_16LE,
				ChangeCharset.GBK);
		System.out.println("再把UTF-16LE码的字符串转换成GBK码: " + gbk);
		System.out.println();
		String utf16 = test.toUTF_16(str);
		System.out.println("转换成UTF-16码:" + utf16);
		gbk = test.changeCharset(utf16, ChangeCharset.UTF_16LE,
				ChangeCharset.GBK);
		System.out.println("再把UTF-16码的字符串转换成GBK码: " + gbk);
		String s = new String("中文".getBytes("UTF-8"), "UTF-8");
		System.out.println(s);
	}
}

输出结果:

分享万能java字符串编码转换工具类

另外关于java字符编码可以参考这个帖子:Java编码浅析(注意区分三个概念)

1
2
分享到:
评论

相关推荐

    Java 所有字符串转UTF-8 万能工具类-GetEncode.java

    不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);

    万能字符串转换工具

    该工具实现字符串任意转化,十六进制相互转换,繁简转换,字符串编码转换

    万能字符串转换软件工具_45软件 v1.2.zip

    万能字符串转换软件工具是一款支持字符串转16进制,16进制转字符串,字符串转Unicode,Unicode转字符串,简体转繁体(GB2312转GBK),繁体转简体(GBK转GB2312),繁体转BIG5(GBK转BIG5),BIG5转繁体(BIG5转GBK),字符串...

    45软件万能字符串转换软件工具v1.2绿色免费版

    万能字符串转换软件工具是一款支持字符串转16进制,16进制转字符串,字符串转Unicode,Unicode转字符串,简体转繁体(GB2312转GBK),繁体转简体(GBK转GB2312),繁体转BIG5(GBK转BIG5),BIG5转繁体(BIG5转GBK),字符串...

    万能的文件编码转换工具。

    本软件“万能的文件编码转换工具”专为此问题提供解决方案,它支持多种编码格式,使得用户能够轻松应对各种编码不兼容的情况。 首先,我们需要理解什么是文件编码。文件编码是指将字符转化为二进制数据的规则,常见...

    java转换万能工具类附带jar包

    一个json相互转换的万能java类(JsonUtil.java), 这个下面就是万能转换类的方法注释,懂java的相信都能看懂。 /** *//** * 从一个JSON 对象字符格式中得到一个java对象 * @param jsonString * @param ...

    java万能判空工具类-可直接使用

    本文将详细介绍一个名为"CheckUtil"的Java万能判空工具类,它提供了便捷的方法来避免NullPointerException。 `CheckUtil`工具类的主要功能是提供一系列静态方法,用于检查对象、集合、数组、字符串等是否为空。这样...

    万能字符串转换软件工具Character1.2.rar

    《万能字符串转换软件工具Character1.2》是一款强大的文本处理工具,专为程序员和数据处理人员设计。它集成了多种字符串转换功能,能够高效地完成各种字符串操作,极大地提升了工作效率。在IT行业中,字符串处理是一...

    java写的excel万能工具类

    Java编写的Excel万能工具类是一种高效处理Excel数据的实用程序,它可以帮助开发者轻松地读取、写入和操作Excel文件。在这个工具类中,通常会包含一系列静态方法,用于处理各种Excel相关的任务,比如打开文件、读取...

    万能编码转换器 converter v0.4中文

    Converter是通用的编码互相转换的工具,适应于所有的编码格式。 转码格式: 1、字符转16进制 、16进制转字符、base64编码、base64解码、域名转 IP、数字转人民币。 2、MD5_16 、 MD5_ 32 、vbUnicode、vbFormUnicode...

    Java中字符串去重的特性介绍

    Java中的字符串去重特性是Java 8 Update 20引入的一种优化机制,旨在减少内存消耗,特别是对于大量字符串操作的应用。这一特性依赖于G1(Garbage First)垃圾回收器,G1是Java 8中默认关闭的一个高级垃圾回收算法。...

    gb2312-utf8强大的万能字符转换工具

    总之,"gb2312-utf8"是一个强大的字符编码转换工具,它解决了不同编码格式之间的不兼容问题,特别是对于处理中文字符,可以避免出现烦人的乱码现象。无论是普通用户还是专业开发者,掌握这类工具的使用方法,都能够...

    万能字符转换工具 缩进空格

    "万能字符转换工具"是一个非常实用的软件,专门用于处理文本中的缩进和空格问题,这对于编写代码、格式化文本或者进行数据处理时尤其有用。下面我们将深入探讨这个工具及其在开发过程中的应用。 首先,字符转换工具...

    java中字符串转unicode

    这里提供一个能转换十进制和十六进制unicode的java的util类,我们经常会遇到乱码问题,比如在后端与前端交互的时候,由于框架的种种原因,导致乱码,这时候就用到了unicode(万能码),在乱码前转为unicode,就可以...

    常用万能单位转换工具

    "常用万能单位转换工具"正是一款这样的应用程序,它涵盖了长度、重量等多种类型的单位转换,以满足用户在工作中的多样化需求。 长度单位转换在工程计算中极其常见,例如在建筑设计、机械制造或航空航天等领域。这个...

    全能字符替换工具带编码转换

    全能字符替换工具带编码转换是一款强大的软件,专为IT专业人士设计,用于处理各种文本编码问题并执行复杂的字符替换任务。在开发过程中,我们经常会遇到需要批量替换文本中的特定字符或字符串,或者需要在不同编码...

    西西万能编码转换器

    编程开发人员必备的多功能编码解码辅助计算工具,包含以下转换功能: URL 编码、URL解码、UTF 8_编码、UTF 8_解码、ASCII 码值、MD 5+BASE 64 字符转16进制 、16进制转字符、base64编码、base64解码、域名转 IP、...

    编码转换工具,支持40种编码格式转换,EncodingConverter

    编码转换工具,支持40种编码格式转换,支持目录下所有文件编码转换和筛选不同后缀的文件。

    万能视频转换工具

    这类工具通常支持多种视频编码和解码技术,以适应广泛的设备和平台。以下是一些关于视频转换工具及其关联组件的详细知识点: 1. **视频编码与解码**:视频文件在存储和传输时需要被编码,以便减小文件大小。常见的...

Global site tag (gtag.js) - Google Analytics