【出错状况】
从数据库中返回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 cr in strArr) |
{ |
if (cr == ( char )10) |
{ |
continue ; |
} |
if(cr==(char)13)
{
continue;
}
newStr += cr.ToString(); |
} |