Unicode编码识别HTML中的转义字符------字符解析表

//+-------------------------------------------------------------------------
//
//  Method:     CSpecialCharHashTable::CSpecialCharHashTable
//
//  Synopsis:   Constructor
//  转自: zhao4zhong1     非常不错的代码。
//--------------------------------------------------------------------------
 
CSpecialCharHashTable::CSpecialCharHashTable()
{
    for (unsigned i=0; i<SPECIAL_CHAR_HASH_TABLE_SIZE; i++)
        _aHashTable[i] = 0;
 
    //
    // Initialize the table with various Ascii string->Unicode mappings
    //
 
    //
    // For lt and gt, use Unicode chars from private use area to avoid
    // collision with '<' and '>' chars in Html tags. These will be
    // mapped back to '<' and '>' by the scanner.
    //
    Add(L"lt",      PRIVATE_USE_MAPPING_FOR_LT);
    Add(L"gt",      PRIVATE_USE_MAPPING_FOR_GT);
 
    Add(L"amp",     0x26);
    Add(L"quot",    0x22);
    Add(L"nbsp",    0xa0);
    Add(L"shy",     0xad);
    Add(L"Agrave",  0xc0);
    Add(L"agrave",  0xe0);
    Add(L"Aacute",  0xc1);
    Add(L"aacute",  0xe1);
    Add(L"Acirc",   0xc2);
    Add(L"acirc",   0xe2);
    Add(L"Atilde",  0xc3);
    Add(L"atilde",  0xe3);
    Add(L"Auml",    0xc4);
    Add(L"auml",    0xe4);
    Add(L"Aring",   0xc5);
    Add(L"aring",   0xe5);
    Add(L"AElig",   0xc6);
    Add(L"aelig",   0xe6);
    Add(L"Ccedil",  0xc7);
    Add(L"ccedil",  0xe7);
    Add(L"Egrave",  0xc8);
    Add(L"egrave",  0xe8);
    Add(L"Eacute",  0xc9);
    Add(L"eacute",  0xe9);
    Add(L"Ecirc",   0xca);
    Add(L"ecirc",   0xea);
    Add(L"Euml",    0xcb);
    Add(L"euml",    0xeb);
    Add(L"Igrave",  0xcc);
    Add(L"igrave",  0xec);
    Add(L"Iacute",  0xcd);
    Add(L"iacute",  0xed);
    Add(L"Icirc",   0xce);
    Add(L"icirc",   0xee);
    Add(L"Iuml",    0xcf);
    Add(L"iuml",    0xef);
    Add(L"ETH",     0xd0);
    Add(L"eth",     0xf0);
    Add(L"Ntilde",  0xd1);
    Add(L"ntilde",  0xf1);
    Add(L"Ograve",  0xd2);
    Add(L"ograve",  0xf2);
    Add(L"Oacute",  0xd3);
    Add(L"oacute",  0xf3);
    Add(L"Ocirc",   0xd4);
    Add(L"ocirc",   0xf4);
    Add(L"Otilde",  0xd5);
    Add(L"otilde",  0xf5);
    Add(L"Ouml",    0xd6);
    Add(L"ouml",    0xf6);
    Add(L"Oslash",  0xd8);
    Add(L"oslash",  0xf8);
    Add(L"Ugrave",  0xd9);
    Add(L"ugrave",  0xf9);
    Add(L"Uacute",  0xda);
    Add(L"uacute",  0xfa);
    Add(L"Ucirc",   0xdb);
    Add(L"ucirc",   0xfb);
    Add(L"Uuml",    0xdc);
    Add(L"uuml",    0xfc);
    Add(L"Yacute",  0xdd);
    Add(L"yacute",  0xfd);
    Add(L"THORN",   0xde);
    Add(L"thorn",   0xfe);
    Add(L"szlig",   0xdf);
    Add(L"yuml",    0xff);
    Add(L"iexcl",   0xa1);
    Add(L"cent",    0xa2);
    Add(L"pound",   0xa3);
    Add(L"curren",  0xa4);
    Add(L"yen",     0xa5);
    Add(L"brvbar",  0xa6);
    Add(L"sect",    0xa7);
    Add(L"die",     0xa8);
    Add(L"copy",    0xa9);
    Add(L"laquo",   0xab);
    Add(L"reg",     0xae);
    Add(L"macron",  0xaf);
    Add(L"deg",     0xb0);
    Add(L"plusmn",  0xb1);
    Add(L"sup2",    0xb2);
    Add(L"sup3",    0xb3);
    Add(L"acute",   0xb4);
    Add(L"micro",   0xb5);
    Add(L"para",    0xb6);
    Add(L"middot",  0xb7);
    Add(L"cedil",   0xb8);
    Add(L"supl",    0xb9);
    Add(L"raquo",   0xbb);
    Add(L"frac14",  0xbc);
    Add(L"frac12",  0xbd);
    Add(L"frac34",  0xbe);
    Add(L"iquest",  0xbf);
    Add(L"times",   0xd7);
    Add(L"divide",  0xf7);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值