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

原文:C#对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("‘", "'");
            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("'", "‘");
            sTemp = sTemp.Replace("&nbsp;", " ");
            sTemp = sTemp.Replace("&quot;", "\"");
            sTemp = sTemp.Replace("&amp;", "&");
            sTemp = sTemp.Replace("<br />", "\n");
            return sTemp;
        }

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

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

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

时间: 2024-11-10 13:51:43

C#对HTML转译需要注意的问题的相关文章

译:SOS_SCHEDULER_YIELD类型等待在虚拟机环境中的增多

原文出处:Increased SOS_SCHEDULER_YIELD waits on virtual machines 注: 原文的用词是Increased,想译作增强(增长),或者加强,这么译起来是褒义词,而原文要表达的Increased并没有褒义的含义,最起码是一个中性的含义,想来想起用一个“滋长”偏编译的含义还是比较合适的,感觉还是有点过于贬义了,还是用最通俗的增多吧.个人英语水平有限,另外就是对于文中提到的“rdtsc周期”也不是非常清楚,翻译的也不是很清楚,权当是自娱自乐.总是原文的

《100种过度医疗大公开》:转译自日文版,日文版依据的是美国的“Choosing Wisely”项目。三星推荐

本书转译自日文,日文版则是在美国的“Choosing Wisely”项目中选择了100个相对常见的过度医疗项目做解说.Choosing Wisely项目,是由美国多个专业医学组织发起的列出过度医疗项目的活动. 日文作者是兽医专业的新闻记者,中文译者不是医学专业人员,个别专业词语翻译有误,“随机对照试验”翻译成“随机比较试验”了,有些句子翻译的也比较别扭.基于以上两点,这本书的权威性可信度我认为都不算太高,只能给三星.感兴趣的话还是应该直接上网看英文原版. 以下是书中部分信息的摘抄: 1:以美国内

博译有道——关于外文书籍的翻译

有人说,中国古代曾经被人津津乐道的诸如木流牛马之类的工匠发明和创造之所以没有被后人所重现,是因为创作者只知其术,不懂传道.在门户之见成风,传道授艺大多通过手把手教.口口相传的古代,可想而知像<本草纲目>这样的著作的重要性.同样在今天,无论是原创,还是转载,通过互联网广泛传播碎片化知识的同时,作为系统性的.汇总性的书籍显得颇为难能可贵,即便是将一本国外早已出版的书籍引入到国内出版. 经过长达六个月的付出和守候,由IDF实验室成员翻译.机械工业出版社出版的<Hacking with Kali

[email&#160;protected]一个高效的配置管理工具--Ansible configure management--翻译(六)

无书面许可请勿转载 高级playbook Finding files with variables All modules can take variables as part of their arguments by dereferencing them with {{ and }} . You can use this to load a particular file based on a variable. For example, you might want to select a

[译]JavaScript中,{}+{}等于多少?

[译]JavaScript中,{}+{}等于多少? 原文:http://www.2ality.com/2012/01/object-plus-object.html 最近,Gary Bernhardt在一个简短的演讲视频“Wat”中指出了一个有趣的JavaScript怪癖:在把对象和数组混合相加时,会得到一些你意想不到的结果.本篇文章会依次讲解这些计算结果是如何得出的. 在JavaScript中,加法的规则其实很简单,只有两种情况:你只能把数字和数字相加,或者字符串和字符串相加,所有其他类型的值

[译]WordPress 4.3 将会用node.js重写

一个核心的wordpress开发者Ryan Boren表示,wordpress4.3 cms系统将会有一个重大的变革,那就是用node.js重写,同时完全兼容之前的版本. WordPress 和 Node.js 开发者以及项目本身已经关注node.js很久了,当然,这早就不是什么秘密了,node.js允许你用javascript写服务端代码. 我们首次使用node.js是在3.7版本中,同时也把Grunt工具加入了我们的开发周期中.自那以后,越来越多的核心版本开始使用javascript,NB的

storm源码之storm代码结构【译】【转】

[原]storm源码之storm代码结构[译] 说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于Storm进行源码级学习和研究的朋友有所帮助. Storm的源码共分为三个不同的层次. 首先,Storm在设计之初就考虑到了兼容多语言开发.Nimbus是一个thrift服务,topologies被定义为Thrift结构体.Thrift的运用使得Storm可以被任意开发语言使用. 其次,Stor

AFNnetworking快速教程,官方入门教程译

AFNnetworking快速教程,官方入门教程译 分类: IOS2013-12-15 20:29 12489人阅读 评论(5) 收藏 举报 afnetworkingjsonios入门教程快速教程 AFNetworking官网入门教程简单翻译,学习 AFNetworking 是一个能够快速使用的ios和mac os x下的网络框架,它是构建在Foundation URL Loading System之上的,封装了网络的抽象层,可以方便的使用,AFNetworking是一个模块化架构,拥有丰富ap

[译]最长回文子串(Longest Palindromic Substring) Part II

[译+改]最长回文子串(Longest Palindromic Substring) Part II 问题:给定字符串S,求S中的最长回文子串. 在上一篇,我们给出了4种算法,其中包括一个O(N2)时间O(1)空间的算法(中心检测法),已经很不错了.本篇将讨论一个O(N)时间O(N)空间的算法,即著名的Manacher算法,并详细说明其时间复杂度为何是O(N). 提示 +BIT祝威+悄悄在此留下版了个权的信息说: 先想想有什么办法能改进中心检测法. 考虑一下最坏的情况.★ 最坏的情况就是各个回文

[译]用AngularJS构建大型ASP.NET单页应用(一)

原文地址:http://www.codeproject.com/Articles/808213/Developing-a-Large-Scale-Application-with-a-Single 渣译,各位看官请勿喷 引言: ... 单页面应用程序(SPA),被定义为在一个独立的页面上??提供类似于桌面应用程序级用户体验为目标的网站.在SPA, 基本上所有的代码 - 例如 HTML,JavaScript和CSS - 都是在响应用户操作时动态加载的.页面没有在任何时候被重新刷新,也没有跳转到另一