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中字符串编码的转换方法及其在Web...
### Java字符串的编码转换 在Java中,处理不同字符集之间的字符串转换是一项常见任务。尤其是在处理国际化应用时,理解并掌握各种字符编码格式变得尤为重要。下面将介绍几种常见的字符编码格式以及如何在Java中实现...
总结了java中常见的utf-8、gbk等进行字符串编码转换
不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);
字符串与各种编码之间相互转换,例如:字符串转base64,字符串转十六进制等等
总的来说,Java中获取字符串编码类型没有一个直接的标准方法,开发者需要借助一些技巧和外部库来实现。在处理编码问题时,理解各种编码格式的特性以及它们之间的差异至关重要,这样才能有效地避免乱码问题,保证数据...
Java字符串编码查询及转换,可将常用的一些编码格式转换成utf-8
要获取Java字符串的字节序列(即编码),可以使用`getBytes()`方法。此方法默认使用平台的默认编码,通常为UTF-8,但也可以指定其他编码,如`getBytes("GBK")`。如果需要确定字符串的原始编码,需要额外的信息,...
在Java中,字符编码转换...总之,了解和掌握Java中的字符串编码转换方法,对于开发跨平台的应用程序和处理多语言数据具有重要意义。通过恰当的编码转换机制,可以确保数据的正确显示和处理,避免乱码等常见的编码问题。
JAVA字符串操作类CTool.java字符转换类,此类中收集Java编程中WEB开发常用到的一些工具。为避免生成此类的实例,构造方法被申明为private类型的。封装的功能:字符串从GBK编码转换为Unicode编码、对字符串进行md5...
在Java编程语言中,将字符串转换为16进制ASCII值是一个常见的操作,尤其是在处理数据编码、网络通信或存储时。这个过程涉及到字符到数字的...理解这些概念和方法,对于在Java开发过程中处理字符串编码问题至关重要。
字符串与字节之间的转换涉及到编码问题,如`getBytes()`和`new String(byte[], charset)`。Java默认使用平台的默认字符集,但应尽量明确指定如`getBytes("UTF-8")`。 以上内容是基于"JAVA 字符串应用笔记"可能涵盖...
在 Java 中,我们可以使用 `encode` 函数将字符串编码为 16 进制字符串。该函数接受一个参数 str,即字符串,然后将其编码为 16 进制字符串。 ```java public static String encode(String str) { byte[] bytes=...
在Java编程中,将字符串转换成点阵字库显示是一种常见的需求,特别是在处理文本图形界面或者游戏开发时。点阵字库是一种将字符图形化表示的方式,它将每个字符用一系列像素点组成,每个点代表一个颜色(通常为黑白)...
在IT行业中,字符串加密解密是信息安全领域的重要组成部分,它涉及到数据保护、用户隐私和网络安全。本项目提供了四种常见的加密解密算法的Java实现:BASE64、AES、DES和MD5。接下来,我们将深入探讨这四种算法及其...
在Java编程语言中,字符串(String)是至关重要的数据类型,用于处理文本信息。字符串是不可变的,这意味着一旦创建,就不能更改其...通过学习和实践这些示例,开发者可以更好地掌握Java字符串操作的技巧,提升编程能力。
在Java编程中,处理不同编码方式的字符串转换是一项常见的任务,尤其在处理来自不同系统或网络的数据时。本文将深入探讨如何使用Java实现这一过程,同时涵盖异常处理、重复不终止输入以及`BufferedReader`的高效使用...
在Java编程语言中,字符串操作是日常开发中的重要部分,因为字符串处理无处不在,从数据解析到用户界面的交互。`StringUtil` 类是这样一个工具类,它集合了多种常用的字符串处理方法,以提高开发效率并减少代码重复...
这里我们将深入探讨“Base16”(也称为Hex)编码,以及Java和JavaScript中如何进行字符串与十六进制之间的转换。 Base16是一种简单的二进制到文本的编码方式,它将每个八位字节表示为两个十六进制数字。这种编码...
- 返回一个由汉字转换后的英文字符组成的字符串。 - **实现细节**: - 使用 `getBytes()` 方法获取字符串的字节数组。 - 遍历字节数组,检查每个字节是否小于0(即非ASCII字符)。 - 如果是负数,则使用位运算 `...