AnsiString 处理不了的特殊字符 億

  AnsiString str = "姜億雨|2|";
  WideString wstr = "姜億雨|2|";
  char s1[10]="|";
  char buf2[20];
  if( str.SubString(1,6) == "姜億雨" )
     ShowMessage("hello");
  strcpy(buf2,str.c_str());
  int po,wpos;
  po =  str.Pos("|");
  Caption = po;
  wpos =  wstr.Pos(WideString("|"));
  Caption = po;

 

 億 的 GBK编码10进制 33660,GBK编码16进制 (GBK内码) 837C,Unicode编码10进制 20740 Unicode编码16进制 5104,可见7C与字符| 一样

字符“|”的ascii码是 124(0x73)

用wideString就好了

void __fastcall TForm1::btnwsClick(TObject *Sender)
{
   AnsiString str = "姜億雨|2|";
   WideString wstr = str;
   int po,wpos;
   wpos =  wstr.Pos(("|"));
   Caption =   wstr.SubString(1,wpos-1);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值