快来看啊!!!

cbk808 2008-04-07 02:42:06
CString str("E:\\test\\test.htm"),str1;
char *pbuf,*p;
CFile fl;
int i=0;
fl.Open(str,CFile::modeRead);
int length=fl.GetLength();
pbuf=new char[length+1];
pbuf[length]=0;
fl.Read(pbuf,length);
CAtlRegExp<CAtlRECharTraitsA> reUrl;
reUrl.Parse("{html}");//换成reUrl.Parse("{哈哈}")就匹配不到,这两个词文件里都有
CAtlREMatchContext<CAtlRECharTraitsA> mcUrl;
reUrl.Match(pbuf,&mcUrl);
const CAtlREMatchContext<CAtlRECharTraitsA>::RECHAR* szStart = 0;
const CAtlREMatchContext<CAtlRECharTraitsA>::RECHAR* szEnd = 0;
mcUrl.GetMatch(0, &szStart, &szEnd);
p=new char[szEnd-szStart+1];
p[szEnd-szStart]=0;
for(i=0;i<szEnd-szStart;i++)p[i]=*(szStart+i);
MessageBoxA(m_hWnd,p,"haha",MB_OK);
str1.Format(_T("%d"),szEnd-szStart);
MessageBox(str1);

用的是vc2005,文章长了就会匹配不到汉字,短了还可以,怎么回事?!!!!!!!!!!!!!!!!!!
...全文
48 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbk808 2008-04-07
  • 打赏
  • 举报
回复
我把那文件编码改成ANSI就可以了,它原来是UTF8,“哈哈”怎么改成UTF8呢?
oo 2008-04-07
  • 打赏
  • 举报
回复
reUrl.Parse("{html}");//换成reUrl.Parse("{哈哈}")就匹配不到,这两个词文件里都有

//中文要注意编码问题
0黄瓜0 2008-04-07
  • 打赏
  • 举报
回复
编码不匹配.
如test.htm是utf8,reUrl.Parse("{哈哈}")中是多字节码.

64,688

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧