⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gb2312-unicode对照表.txt

📁 短信收发源代码,集中一个类阐明了 其原理,对大家肯定有帮助撒!
💻 TXT
📖 第 1 页 / 共 5 页
字号:
UNICODE<->GB2312 对照表 for C 程序(见附件)


部分C程序:

#ifndef  USG_TYPE
# define USG_TYPE
  typedef unsigned char  USGC;
  typedef unsigned short USGS;
  typedef unsigned int   USGI;
  typedef unsigned long  USGL;
#endif

#ifndef  YES
# define YES             1
# define NO              0
#endif

#ifndef  TRUE
# define TRUE            1
# define FALSE           0
#endif

#ifndef  ON
# define ON              1
# define OFF             0
#endif

#ifndef  NUL
# define NUL             '\0'
#endif

/* ------------------------------------------------------------------------- */
USGI Word_Unicode2GBcode(USGI Unicode)
/*
   查表将一个 UNICODE 码转换为 GB 码并返回,若找不到则返回 0

   M.L.Y  2002.4
*/
{
  int  i, n = sizeof(GB2312_Unicode)/sizeof(GB2312_Unicode[0]);

  for(i = 0; i < n; i++)
    if(GB2312_Unicode[i][1] == Unicode) return GB2312_Unicode[i][0];
  return 0;
}

/* ------------------------------------------------------------------------- */
int  cvt_Unicode2GB(USGC *strfrom, USGC *strto)
/*
   将 UNICODE 码字符串转换为 GB 码字符串,返回转换的汉字数

   M.L.Y  2002.4
*/
{
  int  i, j, k, n, conv;
  USGI w;
  USGL code_val;
  int  stat = 0; /* 0: ASCII, 1: #XX, 2: hanzi */

  for(i = 0, j = 0, n = 0; ; )
  {
    conv = NO;
    if(strfrom[i] == '#' && strfrom[i+1] >= '0' && strfrom[i+1] <= '9')
    {
      code_val = 0L;
      for(k = 1; ; k++)
      {
        if(strfrom[i+k] >= '0' && strfrom[i+k] <= '9')
          code_val = code_val * 10 + strfrom[i+k] - '0';
        else break;
      }
      if(k <= 6 && code_val <= 0xFFFF && code_val >= 128)
      {
        w = Word_Unicode2GBcode(code_val);
        if(w > 0)
        {
          conv = YES;
          if(stat != 2) strto[j++] = '\'';
          stat = 2;
          strto[j++] = (w & 0xFF00) >> 8;
          strto[j++] = w & 0x00FF;
          n++;
          i = i + k;
        }
      }
    }
    if(conv != YES)
    {
      if(stat == 2)
      {
        stat = 0;
        strto[j++] = '\'';
      }
      strto[j++] = strfrom[i];
      if(strfrom[i] == NUL) break;
      i++;
    }
  }
  for(i = 0, j = 0, k = 0; ; )
  {
    if(strto[i] == '\'' && strto[i+1] == '\'')
      i++;          /* 去掉连续的两个单引号 */
    else strto[j++] = strto[i];
    if(strto[i] == NUL) break;
    i++;
  }
  return n;
}

欢迎批评指正!

unsigned int GB2312_Unicode[][2] =
{
  0xA1A1, 0x3000,  /* ' ' -> 12288 */
  0xA1A2, 0x3001,  /* '、' -> 12289 */
  0xA1A3, 0x3002,  /* '。' -> 12290 */
  0xA1A4, 0x30FB,  /* '·' -> 12539 */
  0xA1A5, 0x02C9,  /* 'ˉ' ->   713 */
  0xA1A6, 0x02C7,  /* 'ˇ' ->   711 */
  0xA1A7, 0x00A8,  /* '¨' ->   168 */
  0xA1A8, 0x3003,  /* '〃' -> 12291 */
  0xA1A9, 0x3005,  /* '々' -> 12293 */
  0xA1AA, 0x2015,  /* '—' ->  8213 */
  0xA1AB, 0xFF5E,  /* '~' -> 65374 */
  0xA1AC, 0x2016,  /* '‖' ->  8214 */
  0xA1AD, 0x2026,  /* '…' ->  8230 */
  0xA1AE, 0x2018,  /* '‘' ->  8216 */
  0xA1AF, 0x2019,  /* '’' ->  8217 */
  0xA1B0, 0x201C,  /* '“' ->  8220 */
  0xA1B1, 0x201D,  /* '”' ->  8221 */
  0xA1B2, 0x3014,  /* '〔' -> 12308 */
  0xA1B3, 0x3015,  /* '〕' -> 12309 */
  0xA1B4, 0x3008,  /* '〈' -> 12296 */
  0xA1B5, 0x3009,  /* '〉' -> 12297 */
  0xA1B6, 0x300A,  /* '《' -> 12298 */
  0xA1B7, 0x300B,  /* '》' -> 12299 */
  0xA1B8, 0x300C,  /* '「' -> 12300 */
  0xA1B9, 0x300D,  /* '」' -> 12301 */
  0xA1BA, 0x300E,  /* '『' -> 12302 */
  0xA1BB, 0x300F,  /* '』' -> 12303 */
  0xA1BC, 0x3016,  /* '〖' -> 12310 */
  0xA1BD, 0x3017,  /* '〗' -> 12311 */
  0xA1BE, 0x3010,  /* '【' -> 12304 */
  0xA1BF, 0x3011,  /* '】' -> 12305 */
  0xA1C0, 0x00B1,  /* '±' ->   177 */
  0xA1C1, 0x00D7,  /* '×' ->   215 */
  0xA1C2, 0x00F7,  /* '÷' ->   247 */
  0xA1C3, 0x2236,  /* '∶' ->  8758 */
  0xA1C4, 0x2227,  /* '∧' ->  8743 */
  0xA1C5, 0x2228,  /* '∨' ->  8744 */
  0xA1C6, 0x2211,  /* '∑' ->  8721 */
  0xA1C7, 0x220F,  /* '∏' ->  8719 */
  0xA1C8, 0x222A,  /* '∪' ->  8746 */
  0xA1C9, 0x2229,  /* '∩' ->  8745 */
  0xA1CA, 0x2208,  /* '∈' ->  8712 */
  0xA1CB, 0x2237,  /* '∷' ->  8759 */
  0xA1CC, 0x221A,  /* '√' ->  8730 */
  0xA1CD, 0x22A5,  /* '⊥' ->  8869 */
  0xA1CE, 0x2225,  /* '∥' ->  8741 */
  0xA1CF, 0x2220,  /* '∠' ->  8736 */
  0xA1D0, 0x2312,  /* '⌒' ->  8978 */
  0xA1D1, 0x2299,  /* '⊙' ->  8857 */
  0xA1D2, 0x222B,  /* '∫' ->  8747 */
  0xA1D3, 0x222E,  /* '∮' ->  8750 */
  0xA1D4, 0x2261,  /* '≡' ->  8801 */
  0xA1D5, 0x224C,  /* '≌' ->  8780 */
  0xA1D6, 0x2248,  /* '≈' ->  8776 */
  0xA1D7, 0x223D,  /* '∽' ->  8765 */
  0xA1D8, 0x221D,  /* '∝' ->  8733 */
  0xA1D9, 0x2260,  /* '≠' ->  8800 */
  0xA1DA, 0x226E,  /* '≮' ->  8814 */
  0xA1DB, 0x226F,  /* '≯' ->  8815 */
  0xA1DC, 0x2264,  /* '≤' ->  8804 */
  0xA1DD, 0x2265,  /* '≥' ->  8805 */
  0xA1DE, 0x221E,  /* '∞' ->  8734 */
  0xA1DF, 0x2235,  /* '∵' ->  8757 */
  0xA1E0, 0x2234,  /* '∴' ->  8756 */
  0xA1E1, 0x2642,  /* '♂' ->  9794 */
  0xA1E2, 0x2640,  /* '♀' ->  9792 */
  0xA1E3, 0x00B0,  /* '°' ->   176 */
  0xA1E4, 0x2032,  /* '′' ->  8242 */
  0xA1E5, 0x2033,  /* '″' ->  8243 */
  0xA1E6, 0x2103,  /* '℃' ->  8451 */
  0xA1E7, 0xFF04,  /* '$' -> 65284 */
  0xA1E8, 0x00A4,  /* '¤' ->   164 */
  0xA1E9, 0xFFE0,  /* '¢' -> 65504 */
  0xA1EA, 0xFFE1,  /* '£' -> 65505 */
  0xA1EB, 0x2030,  /* '‰' ->  8240 */
  0xA1EC, 0x00A7,  /* '§' ->   167 */
  0xA1ED, 0x2116,  /* '№' ->  8470 */
  0xA1EE, 0x2606,  /* '☆' ->  9734 */
  0xA1EF, 0x2605,  /* '★' ->  9733 */
  0xA1F0, 0x25CB,  /* '○' ->  9675 */
  0xA1F1, 0x25CF,  /* '●' ->  9679 */
  0xA1F2, 0x25CE,  /* '◎' ->  9678 */
  0xA1F3, 0x25C7,  /* '◇' ->  9671 */
  0xA1F4, 0x25C6,  /* '◆' ->  9670 */
  0xA1F5, 0x25A1,  /* '□' ->  9633 */
  0xA1F6, 0x25A0,  /* '■' ->  9632 */
  0xA1F7, 0x25B3,  /* '△' ->  9651 */
  0xA1F8, 0x25B2,  /* '▲' ->  9650 */
  0xA1F9, 0x203B,  /* '※' ->  8251 */
  0xA1FA, 0x2192,  /* '→' ->  8594 */
  0xA1FB, 0x2190,  /* '←' ->  8592 */
  0xA1FC, 0x2191,  /* '↑' ->  8593 */
  0xA1FD, 0x2193,  /* '↓' ->  8595 */
  0xA1FE, 0x3013,  /* '〓' -> 12307 */
  0xA2B1, 0x2488,  /* '⒈' ->  9352 */
  0xA2B2, 0x2489,  /* '⒉' ->  9353 */
  0xA2B3, 0x248A,  /* '⒊' ->  9354 */
  0xA2B4, 0x248B,  /* '⒋' ->  9355 */
  0xA2B5, 0x248C,  /* '⒌' ->  9356 */
  0xA2B6, 0x248D,  /* '⒍' ->  9357 */
  0xA2B7, 0x248E,  /* '⒎' ->  9358 */
  0xA2B8, 0x248F,  /* '⒏' ->  9359 */
  0xA2B9, 0x2490,  /* '⒐' ->  9360 */
  0xA2BA, 0x2491,  /* '⒑' ->  9361 */
  0xA2BB, 0x2492,  /* '⒒' ->  9362 */
  0xA2BC, 0x2493,  /* '⒓' ->  9363 */
  0xA2BD, 0x2494,  /* '⒔' ->  9364 */
  0xA2BE, 0x2495,  /* '⒕' ->  9365 */
  0xA2BF, 0x2496,  /* '⒖' ->  9366 */
  0xA2C0, 0x2497,  /* '⒗' ->  9367 */
  0xA2C1, 0x2498,  /* '⒘' ->  9368 */
  0xA2C2, 0x2499,  /* '⒙' ->  9369 */
  0xA2C3, 0x249A,  /* '⒚' ->  9370 */
  0xA2C4, 0x249B,  /* '⒛' ->  9371 */
  0xA2C5, 0x2474,  /* '⑴' ->  9332 */
  0xA2C6, 0x2475,  /* '⑵' ->  9333 */
  0xA2C7, 0x2476,  /* '⑶' ->  9334 */
  0xA2C8, 0x2477,  /* '⑷' ->  9335 */
  0xA2C9, 0x2478,  /* '⑸' ->  9336 */
  0xA2CA, 0x2479,  /* '⑹' ->  9337 */
  0xA2CB, 0x247A,  /* '⑺' ->  9338 */
  0xA2CC, 0x247B,  /* '⑻' ->  9339 */
  0xA2CD, 0x247C,  /* '⑼' ->  9340 */
  0xA2CE, 0x247D,  /* '⑽' ->  9341 */
  0xA2CF, 0x247E,  /* '⑾' ->  9342 */
  0xA2D0, 0x247F,  /* '⑿' ->  9343 */
  0xA2D1, 0x2480,  /* '⒀' ->  9344 */
  0xA2D2, 0x2481,  /* '⒁' ->  9345 */
  0xA2D3, 0x2482,  /* '⒂' ->  9346 */
  0xA2D4, 0x2483,  /* '⒃' ->  9347 */
  0xA2D5, 0x2484,  /* '⒄' ->  9348 */
  0xA2D6, 0x2485,  /* '⒅' ->  9349 */
  0xA2D7, 0x2486,  /* '⒆' ->  9350 */
  0xA2D8, 0x2487,  /* '⒇' ->  9351 */
  0xA2D9, 0x2460,  /* '①' ->  9312 */
  0xA2DA, 0x2461,  /* '②' ->  9313 */
  0xA2DB, 0x2462,  /* '③' ->  9314 */
  0xA2DC, 0x2463,  /* '④' ->  9315 */
  0xA2DD, 0x2464,  /* '⑤' ->  9316 */
  0xA2DE, 0x2465,  /* '⑥' ->  9317 */
  0xA2DF, 0x2466,  /* '⑦' ->  9318 */
  0xA2E0, 0x2467,  /* '⑧' ->  9319 */
  0xA2E1, 0x2468,  /* '⑨' ->  9320 */
  0xA2E2, 0x2469,  /* '⑩' ->  9321 */
  0xA2E5, 0x3220,  /* '㈠' -> 12832 */
  0xA2E6, 0x3221,  /* '㈡' -> 12833 */
  0xA2E7, 0x3222,  /* '㈢' -> 12834 */
  0xA2E8, 0x3223,  /* '㈣' -> 12835 */
  0xA2E9, 0x3224,  /* '㈤' -> 12836 */
  0xA2EA, 0x3225,  /* '㈥' -> 12837 */
  0xA2EB, 0x3226,  /* '㈦' -> 12838 */
  0xA2EC, 0x3227,  /* '㈧' -> 12839 */
  0xA2ED, 0x3228,  /* '㈨' -> 12840 */
  0xA2EE, 0x3229,  /* '㈩' -> 12841 */
  0xA2F1, 0x2160,  /* 'Ⅰ' ->  8544 */
  0xA2F2, 0x2161,  /* 'Ⅱ' ->  8545 */
  0xA2F3, 0x2162,  /* 'Ⅲ' ->  8546 */
  0xA2F4, 0x2163,  /* 'Ⅳ' ->  8547 */
  0xA2F5, 0x2164,  /* 'Ⅴ' ->  8548 */
  0xA2F6, 0x2165,  /* 'Ⅵ' ->  8549 */
  0xA2F7, 0x2166,  /* 'Ⅶ' ->  8550 */
  0xA2F8, 0x2167,  /* 'Ⅷ' ->  8551 */
  0xA2F9, 0x2168,  /* 'Ⅸ' ->  8552 */
  0xA2FA, 0x2169,  /* 'Ⅹ' ->  8553 */
  0xA2FB, 0x216A,  /* 'Ⅺ' ->  8554 */
  0xA2FC, 0x216B,  /* 'Ⅻ' ->  8555 */
  0xA3A1, 0xFF01,  /* '!' -> 65281 */
  0xA3A2, 0xFF02,  /* '"' -> 65282 */
  0xA3A3, 0xFF03,  /* '#' -> 65283 */
  0xA3A4, 0xFFE5,  /* '¥' -> 65509 */
  0xA3A5, 0xFF05,  /* '%' -> 65285 */
  0xA3A6, 0xFF06,  /* '&' -> 65286 */
  0xA3A7, 0xFF07,  /* ''' -> 65287 */
  0xA3A8, 0xFF08,  /* '(' -> 65288 */
  0xA3A9, 0xFF09,  /* ')' -> 65289 */
  0xA3AA, 0xFF0A,  /* '*' -> 65290 */
  0xA3AB, 0xFF0B,  /* '+' -> 65291 */
  0xA3AC, 0xFF0C,  /* ',' -> 65292 */
  0xA3AD, 0xFF0D,  /* '-' -> 65293 */
  0xA3AE, 0xFF0E,  /* '.' -> 65294 */
  0xA3AF, 0xFF0F,  /* '/' -> 65295 */
  0xA3B0, 0xFF10,  /* '0' -> 65296 */
  0xA3B1, 0xFF11,  /* '1' -> 65297 */
  0xA3B2, 0xFF12,  /* '2' -> 65298 */
  0xA3B3, 0xFF13,  /* '3' -> 65299 */
  0xA3B4, 0xFF14,  /* '4' -> 65300 */
  0xA3B5, 0xFF15,  /* '5' -> 65301 */
  0xA3B6, 0xFF16,  /* '6' -> 65302 */
  0xA3B7, 0xFF17,  /* '7' -> 65303 */
  0xA3B8, 0xFF18,  /* '8' -> 65304 */
  0xA3B9, 0xFF19,  /* '9' -> 65305 */
  0xA3BA, 0xFF1A,  /* ':' -> 65306 */
  0xA3BB, 0xFF1B,  /* ';' -> 65307 */
  0xA3BC, 0xFF1C,  /* '<' -> 65308 */
  0xA3BD, 0xFF1D,  /* '=' -> 65309 */
  0xA3BE, 0xFF1E,  /* '>' -> 65310 */
  0xA3BF, 0xFF1F,  /* '?' -> 65311 */
  0xA3C0, 0xFF20,  /* '@' -> 65312 */
  0xA3C1, 0xFF21,  /* 'A' -> 65313 */
  0xA3C2, 0xFF22,  /* 'B' -> 65314 */
  0xA3C3, 0xFF23,  /* 'C' -> 65315 */
  0xA3C4, 0xFF24,  /* 'D' -> 65316 */
  0xA3C5, 0xFF25,  /* 'E' -> 65317 */
  0xA3C6, 0xFF26,  /* 'F' -> 65318 */
  0xA3C7, 0xFF27,  /* 'G' -> 65319 */
  0xA3C8, 0xFF28,  /* 'H' -> 65320 */
  0xA3C9, 0xFF29,  /* 'I' -> 65321 */
  0xA3CA, 0xFF2A,  /* 'J' -> 65322 */
  0xA3CB, 0xFF2B,  /* 'K' -> 65323 */
  0xA3CC, 0xFF2C,  /* 'L' -> 65324 */
  0xA3CD, 0xFF2D,  /* 'M' -> 65325 */
  0xA3CE, 0xFF2E,  /* 'N' -> 65326 */
  0xA3CF, 0xFF2F,  /* 'O' -> 65327 */
  0xA3D0, 0xFF30,  /* 'P' -> 65328 */
  0xA3D1, 0xFF31,  /* 'Q' -> 65329 */
  0xA3D2, 0xFF32,  /* 'R' -> 65330 */
  0xA3D3, 0xFF33,  /* 'S' -> 65331 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -