Delphi中的Pos函数对中文支持有问题,如果有中文返回int实际是错的,大家一般怎么处理?尤其是在又有中文又有E文的字符串处理?
比如:
s:='english<hr> is tool.';用pos('<hr>',LowerCase(s))函数可以正确返回位置,但是如果为:
s:='engli语言<hr> is tool.';
用POS返回的位置实际是错的……???!

解决方案 »

  1.   

    你确定是错误的??你的s应该定义为 widestring..就OK了
      

  2.   

    pos取值时考虑到中文字符了,取得的是字符的索引位置,你可以用Copy(S; Index, Count: Integer)试验一下,取得的该字符位置是否正确
      

  3.   

    Copy取的是错的,一个中文2个字符,用MidStr可以,beyondtkl回答是正确的,用widestring,谢谢
      

  4.   

    原来要用widestring呀嘿嘿 我的问题也解决了,
    widestring   Unicode characters; multi-user servers and multi-language applications