字符串替换为另一个字符C#

字符串替换为另一个字符C#,c#,c#-4.0,C#,C# 4.0,在SMSgateway(网关将消息转发到我们的应用程序)中,我的消息通常是这样的 sett pØll 1 2 3 4 5 6 7 8 121011(此消息正确) 但在某些情况下,这条信息是这样的 sett p&oslas;ll 1 2 3 4 5 6 7 8 121011(此消息不正确,Ø随&oslas;) 当消息出现时,此消息以字符串形式出现&oslas;我需要把它换成Ø。 有时它会有另一个名字,比如gordØn(gord&oslas;n),它总是用&sign&endsup;签字 在这里我试着

在SMSgateway(网关将消息转发到我们的应用程序)中,我的消息通常是这样的

sett pØll 1 2 3 4 5 6 7 8 121011(此消息正确)

但在某些情况下,这条信息是这样的

sett p&oslas;ll 1 2 3 4 5 6 7 8 121011(此消息不正确,Ø随&oslas;)

当消息出现时,此消息以字符串形式出现&oslas;我需要把它换成Ø。 有时它会有另一个名字,比如gordØn(gord&oslas;n),它总是用&sign&endsup;签字

在这里我试着去做,但我的知识不足以完成这件事

 protected void Page_Load(object sender, EventArgs e)
{

    try
    {
        string mobileNo = Request.QueryString["msisdn"];
        int  dest = int.Parse(Request.QueryString["shortcode"].ToString());
        string messageIn = Request.QueryString["msg"];
        string operatorNew = Request.QueryString["operator"];

        string []reparr = messageIn.Split(' ');//split it & then check contains
        reparr[1].Contains = '&';
        reparr[1].Contains = ';';
        // In here i need to check that character & replace it to originalone.


        Label1.Text = "ok";

        WriteToFile(mobileNo, dest, messageIn, operatorNew,true,"","");

这些看起来像HTML实体。您可以尝试使用以下方法对其进行解码:


您可以使用HttpServerUtility.UrlDecode对url进行解码
请参见

我不知道web命名空间实用程序,但您可以使用以下代码(如果∧的位置总是在消息开头,并且这些字符不会出现在消息文本中):


这似乎是错误的功能;它解码url(
%20
),而不是HTML实体(
&;
)。querystring应该来自url。他询问&xxxx;中的某个字符何时出现;那么如何替换为原来的Ø呢character@ChathuraRanasingheRanasinghe ya.正是我需要的。在这里,查询字符串没有任何问题。我认为您不能使用此函数,OP需要字符串替换。他询问&xxxx;中的某些字符;那么如何替换为原来的Ø;字符是,但
&xxxx通常称为HTML实体。由于他从web表单获取数据,因此输入可能包含HTML实体是有意义的。使用库函数比试图处理数百个已定义的HTML实体要容易得多。@nnoneo你知道如何用原始字符替换它吗?@NimanthaPrasad:
HtmlDecode
就是这样做的:它需要
%amp
ø
并将其替换为适当的字符
&
ø
。那么,如果文本中有两个Ø,会发生什么呢?OP没有解释与此相关的任何内容。OP期望在出现无效值时缺少Ø字符,如果出现Ø,则该值有效。当然,代码将需要处理所有场景。我的意思是,您可以想象做
messageIn.Replace(“&oslas;”,“ø”)
,但我认为使用
HtmlDecode
更灵活。当我添加HtmlDecode时,在&之后,所有字符都丢失了。
string messageIn = HttpUtility.HtmlDecode(Request.QueryString["msg"]);
String s = @"sett p&oslas;ll 1 2 3 4 5 6 7 8 121011";
Int32 startIndex = s.IndexOf("&");
String s1 = s.Replace(s.Substring(startIndex, s.IndexOf(";") - startIndex + 1), "Ø");