C#对HTML转译需要注意的问题

B/S程序中HTML特殊符号转译与编码解析
本文详细介绍了在B/S程序开发中使用HTML特殊符号转译的方法,包括转译规则和编码过程,并强调了转译顺序的重要性以避免出现意外的空格替换。同时提供了解码方法,帮助开发者正确地将转译后的HTML代码还原。

     在做B/S程序时我们多少会用到一点HTML特殊符号转译。 如:“&”——>“&amp;” , "<"——>"&lt;" , ">"——>"&gt;" , " "——>"&nbsp;" ...

     符号转译成为编码:

 

        /// <summary>
        /// HTMLs the en code.
        /// </summary>
        /// <param name="sHTML">The HTML.</param>
        /// <returns></returns>
        public static string HTMLEnCode(string sHTML)
        {
            string sTemp = "";
            if (sHTML.Length == 0)
            {
                return "";
            }
            sTemp = sHTML.Replace("<", "&lt;");
            sTemp = sTemp.Replace("&", "&amp;");
            sTemp = sTemp.Replace(">", "&gt;");
            sTemp = sTemp.Replace("'", "&#39;");
            sTemp = sTemp.Replace(" ", "&nbsp;");
            sTemp = sTemp.Replace("\"", "&quot;");
            sTemp = sTemp.Replace("\n", "<br />");
            return sTemp;
        }

     当我们需要再转换成HTML代码的时候会用到:

 /// <summary>
        /// HTMLs the de code.
        /// </summary>
        /// <param name="sHTML">The HTML.</param>
        /// <returns></returns>
        public static string HTMLDeCode(string sHTML)
        {
            string sTemp = "";
            if (sHTML.Length == 0)
            {
                return "";
            }
            sTemp = sHTML.Replace("&lt;", "<");
            sTemp = sTemp.Replace("&gt;", ">");
            sTemp = sTemp.Replace("&#39;", "'");
            sTemp = sTemp.Replace("&nbsp;", " ");
            sTemp = sTemp.Replace("&quot;", "\"");
            sTemp = sTemp.Replace("&amp;", "&");
            sTemp = sTemp.Replace("<br />", "\n");
            return sTemp;
        }

      但是我们往往会忽略最重要的一点, 就是当我们把转译符转换成HTML的时候需要注意一下转码的顺序,我们必须在 “<”, ">", " " , "'" ,"\" 这几个符号转译之后最后在转换 “&”符, 不然,转译过后的&后面如果跟有 “nbsp;”这样连续的字符的时候就会重新转换成为了空格。

     

     不积跬步,无以至千里;不积小流,无以成江海。只是在于积累,希望这点发现也可以帮到你!

转载于:https://www.cnblogs.com/aces/p/3193469.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值