java编码转换,Java数字与汉字的编码转换

发布时间:2023-01-10

本文目录一览:

  1. Java怎么将字符串转换为GB2312原编码
  2. java怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
  3. java怎么把utf-8的字符串转换为gb2312格式
  4. java怎么把UTF-8字符串转成GBK字符串?

Java怎么将字符串转换为GB2312原编码

@Test
public void test333() {
    String a = "青白";
    try {
        byte[] b = a.getBytes("GB2312");
        System.out.println(bytesToHexFun1(b));
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
}
// 将byte数组转成16进制字符串
public static String bytesToHexFun1(byte[] bytes) {
    char[] HEX_CHAR = {'0', '1', '2', '3', '4', '5',
        '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
    // 一个byte为8位,可用两个十六进制位标识
    char[] buf = new char[bytes.length * 2];
    int a = 0;
    int index = 0;
    for (byte b : bytes) { // 使用除与取余进行转换
        if (b < 0) {
            a = 256 + b;
        } else {
            a = b;
        }
        buf[index++] = HEX_CHAR[a / 16];
        buf[index++] = HEX_CHAR[a % 16];
    }
    return new String(buf);
}

中心思想就是先转成GB2312的byte数组,再转成16进制就可以了。

java怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串

通过JDK1.6知道String类中getBytes("编码")方法可以将一个字符串用指定的编码转成一个字节数组,String中通过指定的charset解码指定的byte数组,构造一个新的String。代码如下:

try {
    String s = "java学习";
    System.out.println(s);
    String result = new String(s.getBytes("GB2312"), "iso-8859-1");
    System.out.println(s);
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

扩展资料:

getBytes() 方法有两种形式:

  1. getBytes(String charsetName):使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
  2. getBytes():使用平台的默认字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

参考资料:

百度百科-getBytes()

java怎么把utf-8的字符串转换为gb2312格式

Java中字符串转码,根据实际运用的环境有以下三种方式:

使用java.lang.String

这是最常用的方法,先用对应编码获取字节,然后重新构造新编码,示例代码如下:

String s = "清山";
byte[] b = s.getBytes("utf-8"); // 编码
String sa = new String(b, "gb2312"); // 解码: 用什么字符集编码就用什么字符集解码

使用java.io.InputStreamReader/OutputStreamWriter:桥转换

读写文件的应用中,可以使用这种方式,直接在IO流构造中转换,示例代码如下:

InputStream is = new FileInputStream("C:/项目进度跟踪.txt"); // 文件读取
InputStreamReader isr = new InputStreamReader(is, "utf-8"); // 解码
OutputStream os = new FileOutputStream("C:/项目进度跟踪_gb2312.txt"); // 文件输出
OutputStreamWriter osw = new OutputStreamWriter(os, "gb2312"); // 开始编码

使用java.nio.Charset

使用nio中的Charset转换字符,示例代码如下:

Charset inSet = Charset.forName("utf-8"); // 解码字符集
Charset outSet = Charset.forName("gb2312"); // 编码字符集
CharsetDecoder de = inSet.newDecoder(); // 解码器
CharsetEncoder en = outSet.newEncoder(); // 编码器

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);