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

Python013

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

其实 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

//十进制转换为二、八、十六进制 -- 递归算法

#include<stdio.h>

void showbit(int n) //十进制转换为二进制

{

if(n>1){

showbit(n/2)

}

printf("%d",n%2)

}

void showoct(int n) //十进制转换为八进制

{

if(n>7){

showoct(n/8)

printf(" ")

}

printf("%d",n%8)

}

void showhex(int n) //十进制转换为十六进制

{

if(n>15){

showhex(n/16)

}

if(n%16>=10) //当余数大于10时以字母形式输出

{

switch(n%16)

{

case 10:printf("A")break

case 11:printf("B")break

case 12:printf("C")break

case 13:printf("D")break

case 14:printf("E")break

case 15:printf("F")break

}

}

else

printf("%d",n%16)

}

int main()

{

int a

printf("input a num:")

scanf("%d",&a)

showbit(a)

printf("\n")

showoct(a)

printf("\n")

showhex(a)

printf("\n")

}

将楼上代码完善了一下!

1、选定转码格式,先把导入格式工厂

2、打开输出设置,所有的设置都在这里面

3、编码在最上方那里,你可以选择各种编码格式

4、同时也可以修改分辨率和码率,甚至的宽高比