原问题 http://bbs.csdn.net/topics/330198862简化一下,情形就是这样的,你看看最后的tmpStr就是#0了
var
  tmpStrList:TStringList;
  tmpStr:AnsiString;
begin
  tmpStrList:=TStringList.create;  
  tmpStrList.add('a=test');   
  tmpStr:=ansiChar(168);//#$A8    
  tmpStrList.Values['a']:=tmpStr;
  tmpStr:=tmpStrList.Values['a'];//tmpStr就变成#0了
end;我也忍不住,来挖一下墓看到好多回贴都没说到点子上,忍不住了.关键在红色的行上 tmpStrList.Values['a']:=tmpStr;实际赋值前有经过类似trim处理,168就被砍了可以用'      这个' 前面加空格的字符测试一下就可以看到
空格都不见了结果:所以不可见字符不适用于 tmpStrList.Values['a']:=.....delphi2010测试