您的位置:

gb2312转码c语言,gb2312是字符编码吗

本文目录一览:

弱弱的问一句,C语言能不能实现字符串的编码格式转换 GB2312toUTF-8?

其实 linux 和 windows 的系统函数都是C函数,并且提供了GB2312toUTF-8的函数,所以C语言是可以实现转码的。以下是windows的例子:int num = ::MultiByteToWideChar(CP_ACP, 0, "你好", -1, NULL, 0);wchar_t* m_arrayShort = new wchar_t[num];::MultiByteToWideChar(CP_ACP, 0, "你好", -1, m_arrayShort, num); int len = ::WideCharToMultiByte (CP_UTF8, 0, (LPCWSTR)m_arrayShort, num, 0, 0, NULL, NULL);char *tmpPT = new char[len+1];::WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)m_arrayShort, num, tmpPT, len, NULL, NULL);tmpPT[len] = 0;

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

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

}

}

}

用c语言怎样得到一个汉字的GB2312编码

源代码是GB2312编码方式写的就比较简单

void printgb(unsigned char* s) {

while (*s) {

if (*s = 0x7f) {

printf("%02x%02x ", *s, *(s+1));

s += 2;

}

else {

printf("%04x ", *(s++));

}

}

}

int main() {

printgb("2017你好中国great china");

return 0;

}