对于从数据库中读取出的字符串结尾出现'/0',大家可能已经司空见惯,并且一般不会出现什么问题,这要得益于.Net服务器控件的自处理机制(如TextBox就可以自动将Text属性值中的结尾'/0'去掉)。但是如果是直接在后台代码里用,可能就会出问题了。如,将从数据库中得到的数据字段作为File.GetFiles()的一个参数将会引发异常。
该怎样解决呢?总体思路是想办法将字符串末尾的'/0'去掉,因为这是问题的根源。下面的代码很好地解决了这个问题:
public string cutEndEmptyValue(string value)
{
string result = "";
ArrayList tmpArr = new ArrayList();
foreach (char c in value)
{
int tmp = Convert.ToInt32(c); //将字符串中的每个字符转换成ASCII值
if (tmp != 0) tmpArr.Add(tmp); //‘/0’的ASCII值为0
}
foreach (int i in tmpArr)
{
char c = Convert.ToChar(i); //将每个ASCII值转换回字符
result += c;
}
return result;
}
希望对大家有帮助。