「java中文转gbk」java中文转码

博主:adminadmin 2023-01-18 14:15:05 195

今天给各位分享java中文转gbk的知识,其中也会对java中文转码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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

Java中UTF-8转GBK之所以不会出现中文乱码,是因为UTF-8编码为兼容性最大的字符集编码,它本身就支持中文字符。

Java代码转码范例:

String s = new String(ss.getBytes(),"GBK");

当你的内容本来就是正常的中文字符时,通过上面的语句转为GBK编码是不会有任何问题的,但如果你在转码之前的字符不是正确的中文字符,或者不是支持中文字符的字符集,那可能就会出现乱码问题。

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。

在Java开发中,特别是web开发,乱码是一种很常见而且很头疼的问题,这常常是由于页面端、服务端、数据库等几处所使用的字符不一致所致,故开发中,保持编码一致, 往往能减少由于乱码而带来的时间浪费,是一件非常重要的事情。

java怎么把UTF-8字符串转成GBK字符串?

java不同编码之间进行转换,都需要使用unicode作为中转。

以utf-8转gbk为例,示例代码如下:

String t = "这是一个字符串aaa111";  

String utf8 = new String(t.getBytes( "UTF-8"));  

System.out.println(utf8);  

String unicode = new String(utf8.getBytes(),"UTF-8");   

System.out.println(unicode);  

String gbk = new String(unicode.getBytes("GBK"));  

System.out.println(gbk);

java中如何得到输入的汉字的GBK编码

/*

 * To change this license header, choose License Headers in Project Properties.

 * To change this template file, choose Tools | Templates

 * and open the template in the editor.

 */

package cn.timecd.gyhhy.mscup;

import java.io.UnsupportedEncodingException;

import java.nio.charset.Charset;

import java.util.Arrays;

import java.util.logging.Level;

import java.util.logging.Logger;

/**

 * 主要涉及到 String 类的 getBytes 方法

 * @author 32798

 */

public class Test {

    public static void main(String[] args){

        // 预定义常量

        String charset = "gbk";// 编码

        

        // 请注意,找不到编码集的时候,下面这句代码 会抛出

        // java.nio.charset.UnsupportedCharsetException

        Charset charset$ = Charset.forName(charset); // 获取编码集

        // 只是阅读: 两个 变量名字 比较, 请注意区分

        // charset

        // charset$

        

        // 从 string 转 bytes

        String str = "这是一个测试文本";

        try {

            // 方法一: 直接通过 编码集的名字 转码

            // 需要 try-catch

            // 当字符集找不到时会抛出 java.io.UnsupportedEncodingException

            System.out.println(Arrays.toString(str.getBytes(charset)));

        } catch (UnsupportedEncodingException ex) {

            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);

        }

        // 方法二: 通过 编码集(java.nio.charset.Charset) 转码

        // 不需要 try-catch

        System.err.println(Arrays.toString(str.getBytes(charset$)));

        try {

            Thread.sleep(200); // 只是为了让 ide 能按顺序输出

        } catch (InterruptedException ex) {}

        

        // 从bytes 转 string

        //byte[] bytes = {-78, -35, -60, -32, -62, -19};

        byte[] bytes = str.getBytes(charset$);// 只是为了获取测试文本的 gbk 码

        System.out.print("\n\n\n"); // 隔出3行, 免得跟之前的输出混淆

        try {

            // 方法一: 通过 编码集名字 新建一个 string

            // 需要 try-catch

            // 当字符集找不到时会抛出 java.io.UnsupportedEncodingException

            System.out.println(new String(bytes, charset));

        } catch (UnsupportedEncodingException ex) {

            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);

        }

        // 方法二: 直接通过 字符集 新建一个 string

        System.err.println(new String(bytes, charset$));

    }

}

关于java中文转gbk和java中文转码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。