linux C语言:如何在ISO8859-1和GB2312字符编码之间互相转换

来源:百度知道 编辑:UC知道 时间:2024/06/15 08:45:31
如题,谢谢!

JAVA有一个public String(byte bytes[], Charset charset)函数可以用指定字节数组和编码来构造字符串。一个public byte[] getBytes(Charset charset)函数把字符串按指定编码来得到字节数组。可以用这两个函数来实现编码转换。
  下面是一个简单的例子,注意一下例子中的文字本身的编码,最好在自己的环境中用gb2312重新输入,不然可能是乱码。当然转换后输出肯定有一个是乱码,也肯能都是乱码。根据你的编辑器的编码格式有关。public class EncodingTest
{
public static void main(String[] args)
{
try
{
String gb = new String("国标2312".getBytes(),"gb2312");
System.out.println(gb);
byte [] b = gb.getBytes("gb2312");
String ios = new String(b,"ISO-8859-1");
System.out.println(ios);
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
}

不用转换.GB2312就用ISO8859-1

GB2312 联读两个 bytes
从文件始或行的开始起读.

loop:
读 byte1;
如果 byte1 > 0xA0 则 读 byte2
byte1byte2 构成一个GB2312-1980码,