【出错状况】
从数据库中返回json格式的数据,但由于数据库中的数据中有换行符,导致返回的json数据错误。
【原因分析】
用for循环语句来分析出错字段字符串中每个字符的ASCII码,可以看出存在值分别为13、10的两个字符,造成换行,导致json格式出错。
char tempstring = '\n'; (10)
char tempstring = '\r; (13)
int tempresult=(int)tempstring;
Response.Write(tempresult);
【解决方法】
用C#中string的replace函数替换掉这两个字符,下面是部分代码供参考。
private string cleanString(string newStr)
{
string tempStr = newStr.Replace((char)13, (char)0);
return tempStr.Replace((char)10, (char)0);
} string temp = cleanString(vUserAdvisory.AdvisoryContent);
遗憾的是这种办法解决不了各个浏览器的兼容性,
后来这个方法可以去除:
char[] strArr =str.ToCharArray();
string newStr ="";
foreach (char crin strArr)
{
if (cr == (char)10)
{
continue;
}
if(cr==(char)13)
{
continue;
}
newStr += cr.ToString();
}
如果你总是等来等去,最终什么都没有等到