LINUX C ANSI 转 UTF8
LINUX C 中 需要将ANSI 转 UTF8 ,怎么转换呢?
我使用 mbstowcs 时,编译会报:
`mbstowcs' undeclared (first use this function)
其中头文件已包含:#include
ANSI -》 UTF8
------解决方案--------------------
抱歉,把ansi与ascii混淆了
把以下代码修改下(来自:http://blog.csdn.net/saokeliu/article/details/5192937)
char* encodeConv::GB2UTF_8(char *p_srcStr)
{
char* p_desStr = NULL;
assert(NULL != p_srcStr);
int isrcLen = strlen(p_srcStr);
int idesLen = isrcLen*2;
int x = 0;
int y = 0;
short s_Temp = 0;
p_desStr = new char[idesLen];
memset(p_desStr,0,idesLen*sizeof(char));
char chighChar = 0;
char clowChar = 0;
char *p_TempStr = p_desStr;
for(int k = 0;k
{
printf("%x ",*(p_srcStr+k));
}
printf("/n");
while ('/0' != *p_srcStr)
{
if(((unsigned char)*(p_srcStr))>=0xA0)
{
printf("%s %d %x %x/n",__FILE__,__LINE__,*(p_srcStr+1),*p_srcStr);
//gb2312转unicdoe
chighChar = *p_srcStr-0xB0;//大端序
clowChar = *(p_srcStr+1)-0xA0;//
x = (int)chighChar;
y = (int)clowChar;
s_Temp = Unicode[x][y];//取unicode编码
printf("%s %d %d %d %d/n",__FILE__,__LINE__,x,y,s_Temp);