2

我想通过 c#spaces将字符串中的更多内容转换为? 

就像如果字符串是

       My name  is this.

那么输出应该是

   My name  is this.
4

4 回答 4

18

将“常规”空格替换为“不间断空格”UTF-8 实体:

string outputString = "Input text".Replace(" ", "\u00A0");
于 2015-08-06T11:40:36.330 回答
6

如果您需要将多个空格转换为单个不间断空格,请尝试使用 RegEx :

string convertedText =
    new Regex("[ ]{2,}").Replace(textToConvert, " ");

例子:

我的名字是这个
  ^ ^^^ ^

将改为:

My Name  is this

更新
如果您需要保留额外的空格(并且只用 nbsp 替换多个空格),您可以使用这个正则表达式

string convertedText =
    new Regex(" (?= )|(?<= ) ").Replace(textToConvert, "&nbsp;");

例子:

我的名字是这个
  ^ ^^^ ^

将改为:

My Name&nbsp;&nbsp;&nbsp;is this

对于第二种情况,作为替代方案,您甚至可能根本不使用正则表达式(只是循环),但如果您必须经常使用相同的正则表达式,它们应该会更快。

于 2012-07-16T12:25:24.717 回答
1

更正下面的行将不起作用

请使用 Server.HtmlEncode

您将不得不通过代码来完成

string s = " ";
if(s == " ")
{
 s = "&nbsp;"
}

Or use "My name  is this".Replace(" ", "&nbsp;");
于 2012-07-16T12:22:41.990 回答
1

试试这个

string myString = "My name  is this".Replace("  ", " &nbsp;");
于 2012-07-16T12:25:32.347 回答