您当前的位置:首页 > 互联网教程

Java中如何将gbk装换为ansi

发布时间:2025-05-24 10:10:19    发布人:远客网络

Java中如何将gbk装换为ansi

一、Java中如何将gbk装换为ansi

对于java,在字符集间进行转换时比较常用的功能,尤其在web应用中。

1、当前流行的字符编码格式有:US-ASCII、ISO-8859-1、UTF-8、UTF-16BE、UTF-16LE、UTF-16、GBK、GB2312等,其中GBK、GB2312是专门处理中文编码的。

2、String的getBytes方法用于按指定编码获取字符串的字节数组,参数指定了解码格式,如果没有指定解码格式,则按系统默认编码格式。

3、String的“String(bytes[] bs, String charset)”构造方法用于把字节数组按指定的格式组合成一个字符串对象

二、下面是一个完整的例子,包括了你提问中的gbk转ascii,同时也提供了一些其他字符集间的转码方式,可留存备查:

/** 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";

public static final String UTF_8="UTF-8";

/** 16位 UCS转换格式,Big Endian(最低地址存放高位字节)字节顺序*/

public static final String UTF_16BE="UTF-16BE";

/** 16位 UCS转换格式,Litter 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";

public static final String GB2312="GB2312";

/**将字符编码转换成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);

public String toUTF_8(String str) throws UnsupportedEncodingException{

return this.changeCharset(str, UTF_8);

public String toUTF_16BE(String str) throws UnsupportedEncodingException{

return this.changeCharset(str, UTF_16BE);

public String toUTF_16LE(String str) throws UnsupportedEncodingException{

return this.changeCharset(str, UTF_16LE);

public String toUTF_16(String str) throws UnsupportedEncodingException{

return this.changeCharset(str, UTF_16);

public String toGBK(String str) throws UnsupportedEncodingException{

return this.changeCharset(str, GBK);

public String toGB2312(String str) throws UnsupportedEncodingException{

return this.changeCharset(str,GB2312);

public String changeCharset(String str, String newCharset) throws UnsupportedEncodingException{

//用默认字符编码解码字符串。与系统相关,中文windows默认为GB2312

return new String(bs, newCharset);//用新的字符编码生成字符串

public String changeCharset(String str, String oldCharset, String newCharset) throws UnsupportedEncodingException{

byte[] bs= str.getBytes(oldCharset);

return new String(bs, newCharset);

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

ChangeCharset test= new ChangeCharset();

String str="This is a中文的 String!";

System.out.println("str:"+ str);

System.out.println("转换成GBK码:"+ gbk);

String ascii= test.toASCII(str);

System.out.println("转换成US-ASCII:"+ ascii);

String iso88591= test.toISO_8859_1(str);

System.out.println("转换成ISO-8859-1码:"+ iso88591);

gbk= test.changeCharset(iso88591, ISO_8859_1, GBK);

System.out.println("再把ISO-8859-1码的字符串转换成GBK码:"+ gbk);

String utf8= test.toUTF_8(str);

System.out.println("转换成UTF-8码:"+ utf8);

String utf16be= test.toUTF_16BE(str);

System.out.println("转换成UTF-16BE码:"+ utf16be);

gbk= test.changeCharset(utf16be, UTF_16BE, GBK);

System.out.println("再把UTF-16BE编码的字符转换成GBK码:"+ gbk);

String utf16le= test.toUTF_16LE(str);

System.out.println("转换成UTF-16LE码:"+ utf16le);

gbk= test.changeCharset(utf16le, UTF_16LE, GBK);

System.out.println("再把UTF-16LE编码的字符串转换成GBK码:"+ gbk);

String utf16= test.toUTF_16(str);

System.out.println("转换成UTF-16码:"+ utf16);

String gb2312= test.changeCharset(utf16, UTF_16, GB2312);

System.out.println("再把UTF-16编码的字符串转换成GB2312码:"+ gb2312);

二、java 中文乱码问题 utf-8和gbk的区别

1、如System.out.println(new String("中国".getBytes("gbk"),"utf-8"));

2、System.out.println(new String("中国".getBytes("utf-8"),"gbk"));

3、//将“中国“的gbk编码格式按着utf-8解析,或者反过来都会出现乱码。

4、如浏览器当前为gbk编码,就以gbk编码格式来提交。这本身是不会出现乱码的,问题就出在Web服务器接收数据的时候,HttpServletRequest在将客户端传来的数据转成ucs2码上出了问题。在默认情况下,是按着iso-8859-1编码格式来转的,而这种编码格式并不支持中文,所以也就无法正常显示中文了,解决这个

5、问题的方法是用和客户端浏览器当前编码格式一致的编码来转换,如果是utf-8,则在doPost方法中应该用以下的语句来处理:

6、request.setCharacterEncoding("utf-8");

三、java默认的字符编码是unicode还是gbk

1、Java的默认字符编码并非固定为Unicode或GBK,而是依赖于操作系统的默认设置。在Windows系统下,通常默认使用的字符编码是GBK。然而,这并不意味着Java程序必须使用GBK编码,开发者可以根据需要修改编码设置。

2、例如,在使用Eclipse进行Java开发时,可以通过调整Eclipse的项目设置来更改字符编码。具体步骤如下:右键点击项目,选择“Properties”,然后进入“Resource”选项卡,点击“Text file encoding”,选择所需的编码格式,如UTF-8或GBK,最后点击“Apply and Close”按钮保存更改。

3、值得注意的是,更改字符编码设置时,需要确保整个项目文件夹中的所有文件都使用相同的编码格式,以避免出现乱码等问题。此外,对于跨平台的Java应用,建议使用Unicode编码,以确保在不同操作系统和环境中都能正确显示文本。

4、总之,Java程序的默认字符编码可以根据实际需求进行调整,开发者应根据项目要求选择合适的编码格式,以确保代码的正确性和兼容性。

5、在修改字符编码设置后,可以再次通过同样的步骤进行验证。具体来说,右键点击项目,选择“Properties”,进入“Resource”选项卡,点击“Text file encoding”,查看当前选择的编码格式是否与预期一致。

6、在实际开发过程中,如果遇到乱码问题,可以检查项目设置中的字符编码是否正确,同时检查源代码文件本身的编码是否一致。通过这种方式,可以有效地解决编码相关的问题,提高开发效率。