xml格式的汉等字符解析

作者:帅得不敢出门   C++爱好者灌水天堂群 3503799   转载请保留此信息

     由于要解析fb2电子书文本,这方面似乎俄文资料比较多啊,没办法,摸着石头过河吧
利用网上的一个软件any2fb2把一段文本转换成fb2,用editplus直接打开fb2
文本内容:
汉 fb2 测试

fb2内容:
<?xml version="1.0" encoding="Windows-1251"?>
<FictionBook xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.gribuser.ru/xml/fictionbook/2.0"><description><title-info><genre></genre><author><first-name></first-name><middle-name></middle-name><last-name></last-name></author><book-title></book-title></title-info></description><body xmlns:fb="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:xlink="http://www.w3.org/1999/xlink">
  <section><p>&#27721; fb2 &#27979;&#35797;</p>
  </section>
 </body>
</FictionBook>

有发现,小样,原来你穿了fb2的马甲,骨子里却是xml的种。
xml解析网上资料太多了,不感冒,现在说下这里面的"&#"开头,中间为数字,';'号结尾的东东吧。比如&#27721;其实就是'汉',
这些字符浏览器可以自动转换的,现在我们来实现这个转换。  
    开头与结尾的字符不管它,取中间数字部分,网上有人说这些是utf-8的编码,不好意思,至少在这里是不正确的,
比如27721,这其实是十进制的,而不是十六进制,把它转成十六进制为0x6c49,正是'汉'的ucs2编码,其utf-8编码为E6B189。
    接下来把它转换成ascii
 WCHAR * wszUcs2 = L"/x6c49";
 int len = WideCharToMultiByte(CP_ACP, 0, wszUcs2, -1, NULL, 0, NULL, NULL);
 char *szGBK=new char[len + 1];
 szGBK[len] = '/0';
 WideCharToMultiByte (CP_ACP, 0, wszUcs2, -1, szGBK, len, NULL,NULL);
 MessageBoxA(NULL, szGBK, NULL, MB_OK);//输出'汉'
 delete[] szGBK;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值