📄 convert.h
字号:
int GB_UNICOD(char *pSrc)
{
int nDstLength = 0 ; // UNICODE宽字符数目
WCHAR wchar[128]; // UNICODE串缓冲区
unsigned int Datasheet[10000][2]; //****建立“字符-UNICODE”对应表
FILE *fp;
int ii = 0,x;
char ch = 'a';
unsigned char sbuf_char[256];
fp = fopen("in.dat","r");
while (ch !=EOF)
{
fscanf(fp,"%x",&x);
Datasheet[ii][0] = x;
fscanf(fp,"%x",&x);
Datasheet[ii][1] = x;
ch = fgetc(fp);
while ((ch != 10)&&(ch != EOF))
{
ch =fgetc(fp);
}
ii++;
}
unsigned int temdata;
int nSrcLength;
nSrcLength=strlen(pSrc);
for ( int k=0;k<nSrcLength;k++ )
{
sbuf_char[k] = *(pSrc+k); //********先将源串指针里的字符烤靠字符数组里
}
sbuf_char[nSrcLength+1]=0;
for (int j=0;j<nSrcLength;j++ )
{
if (sbuf_char[j] > 0xa0)
{
temdata = (sbuf_char[j]-128)*256+sbuf_char[j+1]-128;
for (int k2 = 0; k2<10000; k2++) //*** 循环查表
{
if( temdata == Datasheet[k2][0])
{
wchar[nDstLength]=Datasheet[k2][1];
nDstLength++;
j++;
break;
}
}
}
else
{
wchar[nDstLength]=sbuf_char[j];
nDstLength++;
}
}
for(int i=0; i<nDstLength; i++)
{
*pSrc++ = wchar[i] >> 8; // 先输出高位字节
*pSrc++ = wchar[i] & 0xff; // 后输出低位字节
}
return nDstLength;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -