2013-01-09 108 views
1

比方说,我有一个字符串:子串用特殊字符

string str = "09012013 Receipt 09012013 #12" 

我想要做的子串,返回“回执09012013#12”,我用子:

var result = str.Substring(9); 

,结果是只有“收据09012013”​​

我试着用其他特殊字符(%,§,$ ...),它工作过,子串返回“Receipt 09012013%12”,但是用#和&,子串只返回“Receipt 09012013 ”。

有什么想法?谢谢。

EDIT

我的代码:

new NaviListItem("renameBtn", "showwaitingscreen", "akte/renameakte?entityid=" + Request["parentid"] + "&aktenkurzbezeichnung=" + Model.Node.Header.Substring(Model.Node.Ordnungsnummer.Length+1), "umbenennen.png", Model.RenameVisible, "Umbenennen", "Umbenennen"), 
+4

对我来说,结果是“收据09012013#12”。你有没有用自己的扩展方法'Substring'? –

+0

按原样工作。 – scartag

+0

在我的电脑上,您的问题中的每个特殊字符都可以继续使用。 –

回答

6

Substring结果不依赖于在端部中的字符:

string str = "09012013 Receipt 09012013 #12".Substring(9); 

产生"Receipt 09012013 #12"作为其结果。

最有可能的,这是一个显示问题:如果你是交付Substring的结果在某种支持HTML的显示机制,&#往往会被视为元字符,因此需要逃跑。

+0

是的,我在View.cshtml中使用它来将值传递给JQueryAjaxDialog,所以,你有解决方案吗? – Ragnarsson

+2

@QuiTran **“,因此需要转义。”** –

+2

@QuiTran对Substring的结果使用'System.Web.HttpUtility.HtmlEncode()'来转义元字符。 – dasblinkenlight