我有一个奇怪的问题,我正在从数据库直接获取数据到数据源。数据在带有链接按钮的转发器中绑定。
我遇到的问题是数据库中的数据可能在字符串的中间有多个空格,但是当显示在前端时,只显示空间。在考虑它之后,这是删除空格的标准HTML行为,我会假设asp.net会通过网页的呈现来处理这个问题。还发生的事情是,当报告导出到excel时,它只有1个空格而不是2个。
示例:
2个空格:“南非 - 开普敦”
单一空间:“南非 - 开普敦”
这是一个不相关的例子,但我的数据真正用于多个空格。
答案 0 :(得分:7)
您可以使用
替换空格,如下所示:
string result = myString.Replace(" ", " ");
这会产生HTML:
"South Africa - Cape Town"
使用两个空格正确渲染。
答案 1 :(得分:1)
结束执行以下操作:
Regex spaceRegex = new Regex("\\s{2,}");
//Only replace subsequent spaces, not all spaces. For example,
//" " (three spaces) becomes " " (1 space, 2 non-breaking spaces).
MatchEvaluator matchEvaluator = delegate(Match match)
{
StringBuilder spaceStringBuilder = new StringBuilder(" ");
for (int i = 0; i < match.Value.Length - 1; i++)
{
spaceStringBuilder.Append(" ");
}
return spaceStringBuilder.ToString();
};
return spaceRegex.Replace(server.HtmlEncode(value), matchEvaluator);
}