Java String 字符集转换

本文介绍了如何使用Java中的String类和getBytes方法实现不同字符集间的编码转换,包括从特定字符集编码到字节数组,再到另一种字符集的解码过程。

1,byte[] str.getBytes(String charsetName)


将str按指定的字符集charsetName解码为字符数组.

返回用指定的字符集charsetName解码后的字符数组。


2,String(byte[] bytes, String charsetName)


构造一个新的String.将字符数组bytes按着指定的字符集charsetName指定的字符集进行编码。


3, String str = "您好";
String newStr = new String(str.getBytes("GB2312"),"ISO-8859-1");
这句话的意思是把str用GB2312编码方式取出,将取出的字符数组用ISO-8859-1再进行编码,来构造String类型对象newStr
相当于:
String str = "您好";
byte[] tbyte = str.getBytes("GB2312");//str用GB2312编码方式取出
String newStr = new String(tbyte,"ISO-8859-1");//将tbyte转换为ISO-8859-1编码形式

Java 中,ANSI 通常指的是 Windows 系统默认的代码页编码,如中文环境下可能是 GBK 编码。要进行字符串的 ANSI 字符集转换,可通过指定字符集进行编码和解码操作。 ### 从其他编码转换为 ANSI(GBK) 如果要将其他编码的字符串转换为 ANSI(以 GBK 为例),可以使用以下代码: ```java public class AnsiConversion { public static void main(String[] args) { try { String original = "你好,世界"; // 将字符串编码为 GBK 字节数组 byte[] gbkBytes = original.getBytes("GBK"); // 将 GBK 字节数组解码为字符串 String gbkString = new String(gbkBytes, "GBK"); System.out.println(gbkString); } catch (Exception e) { e.printStackTrace(); } } } ``` ### 从 ANSI(GBK)转换为其他编码 若要将 ANSI(GBK)编码的字符串转换为其他编码,例如 UTF - 8,代码如下: ```java public class AnsiToUtf8 { public static void main(String[] args) { try { String original = "你好,世界"; // 将字符串编码为 GBK 字节数组 byte[] gbkBytes = original.getBytes("GBK"); // 将 GBK 字节数组解码为 UTF-8 字符串 String utf8String = new String(gbkBytes, "UTF-8"); System.out.println(utf8String); } catch (Exception e) { e.printStackTrace(); } } } ``` ### 注意事项 在进行字符集转换时,要确保源字符串的实际编码和指定的编码一致,否则可能会出现乱码问题。此外,不同的操作系统和环境下,ANSI 所代表的具体编码可能不同,在中文 Windows 系统中通常是 GBK,但在其他系统或环境中可能不同。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值