汉字的ASCII码对照表

GB2312和GBK每一个汉字由2个字节组成,这2个字节的ASCII码大小分别是:
gb2312:

high8 = 0xa1–>0xfe (161 - 254)
low8 = 0xa1–>0xfe (161 - 254)

gbk:

high8 = 0x80–>0xfe (128 - 254)
low8 = 0x40–>0xfe (64 - 254)

GB2312和GBK的区别:http://zhidao.baidu.com/question/40269499

汉字ASCII对照表的打印方法:

// 打印ASCII汉字编码表  
for(int i =  129; i < 256; ++i) //  129 = 0x81    
{  
    for(int j = 64; j < 256; ++j) // 64 = 0x40  
    {  
    char pchar[3];  
    pchar[0] = i;  
    pchar[1] = j;  
    pchar[2] = '/0';  
    cout << pchar << " " << i << "," << j << " ";  
    }  
}  

知道一个汉字,输出其ASCII码:

void MakeChinese(int high, int low)
{
    char szTemp[4] = { 0 };
    wchar_t wszChar[sizeof(szTemp)];
    szTemp[0] = (char)high;
    szTemp[1] = (char)low;
    unsigned short *hanzi = (unsigned short *)szTemp;
    //mbstowcs(wszChar, szTemp, sizeof(wszChar));
    printf("拼接汉字->%ls\n", hanzi[0]);
}

int main()
{
    setlocale(LC_ALL, "");
    wchar_t Chinese[] = L"高";
    size_t len = wcslen(Chinese);
    cout << len << endl;
    wprintf(L"%ls\n", Chinese);

    const char *Param = (char *)Chinese;
    unsigned char high = (unsigned)Param[0]; // 216
    unsigned char low = (unsigned)Param[1]; // 154

    MakeChinese((int)high, (int)low);

    system("pause");
    return 0;
}
char Chinese[] = "高" <--> wchar_t Chinese[] = L"高"

这两种汉字的存储形式,以及存储的编码又有什么区别了,可以继续深入下…

  • 13
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
05-10 9305

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值