TranslateLanguage.h
上传用户:yangacai01
上传日期:2020-10-06
资源大小:1730k
文件大小:1k
源码类别:

多国语言处理

开发平台:

Visual C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include "Big5ToGb2312.h"
  5. void language_intial()
  6. {
  7. memset(Big5ToGb2312,0,sizeof(Big5ToGb2312));
  8. memset(Gb2312ToBig5,0,sizeof(Gb2312ToBig5));
  9. for(int i=0;i<Big5ToGb2312DataLen;i+=4)
  10. {
  11. unsigned short ii=Big5ToGb2312Data[i+1]<<8|Big5ToGb2312Data[i+0];
  12. unsigned short jj=Big5ToGb2312Data[i+3]<<8|Big5ToGb2312Data[i+2];
  13. Big5ToGb2312[ii]=jj;
  14. Gb2312ToBig5[jj]=ii;
  15. }
  16. }
  17. int language_big5_to_gbk2312(char *szBuf)
  18. {
  19. int i=0,len=strlen(szBuf);
  20. while(i+1<len)
  21. {
  22. unsigned short ii=(unsigned char)szBuf[i];
  23. ii=ii<<8|((unsigned char)szBuf[i+1]);
  24. unsigned short jj=Big5ToGb2312[ii];
  25. if(jj) { szBuf[i]=(char)(jj>>8); szBuf[i+1]=(char)jj; i+=2; continue; }
  26. i++;
  27. }
  28. return len;
  29. }
  30. int language_gbk2312_to_big5(char *szBuf)
  31. {
  32. int i=0,len=strlen(szBuf);
  33. while(i+1<len)
  34. {
  35. unsigned short ii=(unsigned char)szBuf[i];
  36. ii=ii<<8|((unsigned char)szBuf[i+1]);
  37. unsigned short jj=Gb2312ToBig5[ii];
  38. if(jj) { szBuf[i]=jj>>8&0xff; szBuf[i+1]=jj&0xff; i+=2; continue; }
  39. i++;
  40. }
  41. return len;
  42. }