`
fackyou200
  • 浏览: 309522 次
  • 性别: Icon_minigender_1
  • 来自: 山西太原
社区版块
存档分类
最新评论

java 字符串编码转换

    博客分类:
  • java
 
阅读更多
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 static String toASCII(String str) throws UnsupportedEncodingException{
	  return changeCharset(str, US_ASCII);
	 }
	 /**
	  * 将字符编码转换成ISO-8859-1码
	  */
	 public static String toISO_8859_1(String str) throws UnsupportedEncodingException{
	  return changeCharset(str, ISO_8859_1);
	 }
	 /**
	  * 将字符编码转换成UTF-8码
	  */
	 public static String toUTF_8(String str) throws UnsupportedEncodingException{
	  return changeCharset(str, UTF_8);
	 }
	 /**
	  * 将字符编码转换成UTF-16BE码
	  */
	 public static String toUTF_16BE(String str) throws UnsupportedEncodingException{
	  return changeCharset(str, UTF_16BE);
	 }
	 /**
	  * 将字符编码转换成UTF-16LE码
	  */
	 public static String toUTF_16LE(String str) throws UnsupportedEncodingException{
	  return changeCharset(str, UTF_16LE);
	 }
	 /**
	  * 将字符编码转换成UTF-16码
	  */
	 public static String toUTF_16(String str) throws UnsupportedEncodingException{
	  return changeCharset(str, UTF_16);
	 }
	 /**
	  * 将字符编码转换成GBK码
	  */
	 public static String toGBK(String str) throws UnsupportedEncodingException{
	  return changeCharset(str, GBK);
	 }
	 
	 /**
	  * 字符串编码转换的实现方法
	  * @param str  待转换编码的字符串
	  * @param newCharset 目标编码
	  * @return
	  * @throws UnsupportedEncodingException
	  */
	 public static 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 static 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;
	 }
	 
	 /**
	  * 判断字符串编码
	  *
	  * make by Administrator on 2014-6-9 上午10:48:24
	  * @param str
	  * @return
	  */
	 public static String getEncoding(String str) {      
	       String encode = "GB2312";      
	       try {      
	           if (str.equals(new String(str.getBytes(encode), encode))) {      
	                String s = encode;      
	               return s;      
	            }      
	        } catch (Exception exception) {      
	        }      
	        encode = "ISO-8859-1";      
	       try {      
	           if (str.equals(new String(str.getBytes(encode), encode))) {      
	                String s1 = encode;      
	               return s1;      
	            }      
	        } catch (Exception exception1) {      
	        }      
	        encode = "UTF-8";      
	       try {      
	           if (str.equals(new String(str.getBytes(encode), encode))) {      
	                String s2 = encode;      
	               return s2;      
	            }      
	        } catch (Exception exception2) {      
	        }      
	        encode = "GBK";      
	       try {      
	           if (str.equals(new String(str.getBytes(encode), encode))) {      
	                String s3 = encode;      
	               return s3;      
	            }      
	        } catch (Exception exception3) {      
	        }      
	       return "";      
	    }  

	 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 字符串编码转换基础 在Java中,字符串的处理是非常常见的操作之一,而字符编码是确保数据正确显示的关键因素。本篇文章将重点介绍Java中字符串编码的转换方法及其在Web...

    java字符串的各种编码转换

    ### Java字符串的编码转换 在Java中,处理不同字符集之间的字符串转换是一项常见任务。尤其是在处理国际化应用时,理解并掌握各种字符编码格式变得尤为重要。下面将介绍几种常见的字符编码格式以及如何在Java中实现...

    java字符串编码转换代码

    总结了java中常见的utf-8、gbk等进行字符串编码转换

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

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

    Encodes.java字符串编码转换

    字符串与各种编码之间相互转换,例如:字符串转base64,字符串转十六进制等等

    java获取字符串编码类型代码(导入直接查看结果)

    总的来说,Java中获取字符串编码类型没有一个直接的标准方法,开发者需要借助一些技巧和外部库来实现。在处理编码问题时,理解各种编码格式的特性以及它们之间的差异至关重要,这样才能有效地避免乱码问题,保证数据...

    将字符串从常用编码转为utf-8编码(java)

    Java字符串编码查询及转换,可将常用的一些编码格式转换成utf-8

    java字符串编码获取

    要获取Java字符串的字节序列(即编码),可以使用`getBytes()`方法。此方法默认使用平台的默认编码,通常为UTF-8,但也可以指定其他编码,如`getBytes("GBK")`。如果需要确定字符串的原始编码,需要额外的信息,...

    java转换字符串编码格式的方法

    在Java中,字符编码转换...总之,了解和掌握Java中的字符串编码转换方法,对于开发跨平台的应用程序和处理多语言数据具有重要意义。通过恰当的编码转换机制,可以确保数据的正确显示和处理,避免乱码等常见的编码问题。

    JAVA字符串操作类CTool.java字符转换类.rar

    JAVA字符串操作类CTool.java字符转换类,此类中收集Java编程中WEB开发常用到的一些工具。为避免生成此类的实例,构造方法被申明为private类型的。封装的功能:字符串从GBK编码转换为Unicode编码、对字符串进行md5...

    java 字符串转16进制Ascii

    在Java编程语言中,将字符串转换为16进制ASCII值是一个常见的操作,尤其是在处理数据编码、网络通信或存储时。这个过程涉及到字符到数字的...理解这些概念和方法,对于在Java开发过程中处理字符串编码问题至关重要。

    JAVA 字符串应用笔记

    字符串与字节之间的转换涉及到编码问题,如`getBytes()`和`new String(byte[], charset)`。Java默认使用平台的默认字符集,但应尽量明确指定如`getBytes("UTF-8")`。 以上内容是基于"JAVA 字符串应用笔记"可能涵盖...

    java16进制与字符串的转换.pdf

    在 Java 中,我们可以使用 `encode` 函数将字符串编码为 16 进制字符串。该函数接受一个参数 str,即字符串,然后将其编码为 16 进制字符串。 ```java public static String encode(String str) { byte[] bytes=...

    Java 字符串转换成点阵字库显示

    在Java编程中,将字符串转换成点阵字库显示是一种常见的需求,特别是在处理文本图形界面或者游戏开发时。点阵字库是一种将字符图形化表示的方式,它将每个字符用一系列像素点组成,每个点代表一个颜色(通常为黑白)...

    java 字符串加密解密

    在IT行业中,字符串加密解密是信息安全领域的重要组成部分,它涉及到数据保护、用户隐私和网络安全。本项目提供了四种常见的加密解密算法的Java实现:BASE64、AES、DES和MD5。接下来,我们将深入探讨这四种算法及其...

    Java 字符串与文本相关实例源码

    在Java编程语言中,字符串(String)是至关重要的数据类型,用于处理文本信息。字符串是不可变的,这意味着一旦创建,就不能更改其...通过学习和实践这些示例,开发者可以更好地掌握Java字符串操作的技巧,提升编程能力。

    如何用java实现不同编码方式字符串的转换(包含异常处理、重复不终止输入、缓冲区bufferedreader的使用)

    在Java编程中,处理不同编码方式的字符串转换是一项常见的任务,尤其在处理来自不同系统或网络的数据时。本文将深入探讨如何使用Java实现这一过程,同时涵盖异常处理、重复不终止输入以及`BufferedReader`的高效使用...

    java 字符串操作类

    在Java编程语言中,字符串操作是日常开发中的重要部分,因为字符串处理无处不在,从数据解析到用户界面的交互。`StringUtil` 类是这样一个工具类,它集合了多种常用的字符串处理方法,以提高开发效率并减少代码重复...

    Base16 java字符串与十六进制互转 js字符串与十六进制互转

    这里我们将深入探讨“Base16”(也称为Hex)编码,以及Java和JavaScript中如何进行字符串与十六进制之间的转换。 Base16是一种简单的二进制到文本的编码方式,它将每个八位字节表示为两个十六进制数字。这种编码...

    JAVA中汉字字符转化为英文字符

    - 返回一个由汉字转换后的英文字符组成的字符串。 - **实现细节**: - 使用 `getBytes()` 方法获取字符串的字节数组。 - 遍历字节数组,检查每个字节是否小于0(即非ASCII字符)。 - 如果是负数,则使用位运算 `...

Global site tag (gtag.js) - Google Analytics