ASP.NET中输入文本的HTML解析办法(pconline)

PDF文件加密仿真 PDF文件加密仿真前言:通过上一篇文章的阅读,想必大家对基本的PDF文件的格式有所了解。其实对PDF具体格式的学习,不光可以帮助我们理解这种格式本身,同时你也会受到它的启发定义一种自己的文件格式,比如说一种简单的类似PDF格式,来满足你对某些项目的需求。本文就是先仿照PDF(也有借鉴XML加密方式)自定义一种非常简单的文件格式来说明PDF文件的加密方式和过程。1 几个基本概念我 阅读详情
网页中用TextBox让用户输入文本,然后存入数据库,再从数据库中读出显示在页面上。常常这样做会遇到不少问题,因为TextBox实际上是一个Windows组件,和网页显示标记如:<p>,<td>,<div>等,对字符的解析方法是不同的。比如前者的换行标记为“/r/n”,而后者为“<br>”。这就带来一个转换的问题。

在做转换之前,先来考虑几个问题:

  1、 TextBox用“/r/n”来标记换行而网页中以“<br>”标记

  2、 网页中连续的空格当做一个空格处理,比如“a b    c”将会显示“a b c”

  3、 用户输入特殊字符比如:“<”,“&”,“&nbsp;”,“&lt;”,这些都是网页中有特殊意义的字符,会被解析,而用户输入的目的当然是不希望被解析。

  现在来解决这几个问题,有一种解决办法是在显示的时候仍然用TextBox去显示,这样就不用做任何转换,只要把TextBox.ReadOnly设为true,这样在一定程度上能满足要求。但是往往为了网页的美观,这样做是不可取的。比较好的办法是去解析用户输入的字符串,可以做这样的转换:

  第一步:


  “<”      à“&lt;”

  “&”      à“&amp;”

  “&nbsp;”à“&amp;nbsp;”

  ……(此处的省略号后文有说明)

  第二步:


  “ ”      à“&nbsp;”

  “/r/n”  à“<br>”

  这里必须分两步转换,因为如果你先做第二步转换的话混把用户输入的特殊字符串和由转换而的的特殊字符串混淆,比如:

  用户输入:a b   c&nbsp;d

  第二步转换:a&nbsp;b&nbsp;&nbsp;&nbsp;c&nbsp;d

  第一步转换:a&amp;nbsp;b&amp;nbsp;&amp;nbsp;&amp;nbsp;c&amp;nbsp;d

  可以看到,经过第一次转换后已经无法分辨用户输入的“&nbsp;”和转换而来的“&nbsp;”,在做第二次转换的时候就会统一处理就会出错。结果显示:a&nbsp;b&nbsp;&nbsp;&nbsp;c&nbsp;d

  如果严格按照第一步,第二步的转换顺序来转换就不会出现这个问题。

  把转换后的字符串存入数据库,在显示的时候直接把从数据库读出的字符串给HTML组件赋值,比如:


  //这里假设temp是从数据库中读出来的,这里演示Table和HtmlTable其他的控件类似

  //显示的效果是:<a b

  //Table1是Web控件

  String temp = “&lt;a&nbsp;b”;

  Table1.Rows[0].Cells[0].Text = temp;

  //Table2是HTML控件

  Table2.Rows[0].Cells[0].InnerHtml = temp;

 HtmlTable有两个相似的属性“InnerHtml”,“InnerText”,介绍一下这两个属性的区别:

  InnerHtml:显示的时候会对传入的值进行HTML解析,就像上面的例子。

  InnerText:显示的时候不会对传入的值新型解析,直接把传入的值显示出来。比如把上面的例子改成:Table2.Rows[0].Cells[0].InnerText = temp;那么显示的效果将会变成:&lt;a&nbsp;b

  虽然这两个属性用起来很方便,似乎可以满足平时的使用需求,但是InnerText有两个问题:

  1、 无法标记换行,不管是“/r/n”还是“<br>”都不是换行标记

  2、 连续的空格仍然只显示一个空格。

  所以想不转换字符串而直接用InnerText是不可取的。但是转换是个非常繁琐的过程,因为HTML的特殊标记非常多。值得庆幸的是ASP.NET提供了HttpServerUtil类,该类提供了HtmlEncode()和HtmlDecode()方法,这里我们只用到HtmlEncode()方法。我们就可以这样来转换:


  //“/r/n”在TextBox中硬回车的时候会自动添上

  string temp = “a b   c&nbsp;d/r/ne<”;

  //Server是Page类的一个属性,也就是说任何aspx页面的codebehind中都是可以使用的

  //因为aspx页面都是继承Page类的。

  temp = Server.HtmlEncode(temp);

  temp = temp.Replace(" ","&nbsp;");

  temp = temp.Replace("/r/n","<br>");

  Table1.Rows[0].Cells[0].Text = temp;

  Table2.Rows[0].Cells[0].InnerHtml = temp;

  //显示效果:a b   c&nbsp;d

  //        e<


  到这里你也许会想一个问题,万一用户输入“/r/n”怎么办?不用担心,网页组件的设计者已经考虑到了这个问题,因为用户输入的“/r/n”会被自动转换成“//r//n”(当然在我们做转换之前)。

 


ESD防护设计宝典(十一):CE(传导发射)超标问题排查与解决 (Conducted Emission, CE),亦称为传导骚扰,是电子电气设备或系统内部的电压、电流通过信号线、电源线或地线向外传输,对其他电子电气设备或系统造成电磁干扰的物理现象。其。 阅读详情

相关推荐

东北大学计算机预推免(双非友好)

东北大学,个人觉得在985里面对双非比较友好,而且学校的计算机专业实力也比较强,上岸难度不算很大,可以重点关注一下。学校复试审核的时间比较早,拿到复试资格之后,一定要留意报名系统首页中计算机学院的信息,学校也会在全国各地不同时间安排面试,可以根据自己的情况选择一个合适的时间前去面试,并且有对应面试场次的QQ群,信息会在群里面发布。面试成绩会在预推免系统中直接公布,但是是否拟录取不会公布,需要考生自行判断,今年计算机学院录取线定在了86分左右,最终递补下来,好像录取到了84分左右。

D1379951481的博客 2800

Asp.Net实现多行文本,正则表达式验证和禁用页面回车键后多行文本无法换行问题...

Asp.Net实现多行文本,正则表达式验证&lt;asp:TextBox ID="txtDescription" runat="server" Height="82px" MaxLength="500" TextMode="MultiLine"                      Width="501px"&gt;&lt;/asp:TextBox&

Tankywang的专栏 266

python毕业设计之nweb渗透测试工具(django)源码.zip

python毕业设计之nweb渗透测试工具(django)源码源码可正常运行!仅供学习使用!

asp html文本转化,如何获得ASP文本框的值转换成HTML input标签

你想做什么不是很清楚,所以我会提供2个选项。而asp:TextBox和input type="text"在HTML中是一样的。查看页面源代码并亲自查看。首先使用OnTextChanged事件将值从AddressTextBox改为txtAutocomplete。为了这个工作,你将不得不使txtAutocomplete一个aspnet文本框。然后在后面的代码protected void fillAdd...

weixin_29959549的博客 273

【CSS】隐藏多行文本框Textarea在IE中的垂直滚动条

在《【CSS】禁止Google浏览器允许定义调整多行文本框》(点击打开链接)中已经提及过如何使多行文本框Textarea在一些DOM2的浏览器中固定下来。 这不,多行文本框Textarea在IE中也存在一些样式上的缺陷了。 一个普通的,没有加任何定义的文本框,如下: 其在IE的效果就如同左侧一样,在没有输入任何文字,就出现垂直滚动条很不雅观,尤其是在一些不打算给用户输入过多文本的情况下

编程记录,亲测有效 3887

整理了一些t-sql技巧

一、 只复制一个表结构,不复制数据 select top 0 * into [t1] from [t2]二、 获取数据库中某个对象的创建脚本1、 先用下面的脚本创建一个函数if exists(select 1 from sysobjects where id=object_id(fgetscript) and objectproperty(id,IsInlin

kingwkb的专栏 1756

linux下文件加密方法总结

linux下文件加密方法总结 为了安全考虑,通常会对一些重要文件进行加密备份或加密保存,下面对linux下的文件加密方法做一简单总结: 方法一:gzexe加密 这种加密方式不是非常保险的方法,但是能够满足一般的加密用途,可以隐蔽脚本中的密码等信息。 它是使用系统自带的gzexe程序,它不但加密,同时压缩文件。示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14

桂安俊@KylinOS 8640

【文件加密】文件怎么加密?4种文件加密方法总结

文件怎么加密?4种文件加密方法总结

okfone 奥凯丰的博客 1147

文件加密后怎么打开?打开加密文件的方法

在我们使用加密时登录的系统账号时,可以像使用正常文件一样打开使用加密文件。移动加密解密后的文件会恢复到普通状态,文件在其他电脑上使用结束后,建议及时销毁或使用软件再次加密,以避免数据泄露。在软件试用期到期后,已加密的数据只能解密,无法打开,所以此时不能敲击回车,需要使用鼠标点击“解密”按钮。来说,文件在加密后可以得到很好的安全保护,在打开使用时不会带来任何的影响,使用结束关闭后会自动恢复到加密状态,堪称完善的文件加密流程。提供了两种文件加密类型,分别是金钻加密和移动加密,它们加密的文件打开方式也不相同。

jiamisoft的博客 3123

golang 加密文件_如何使用Go加密文件

golang 加密文件Cryptography is mandatory in the current modern world. In this era of big data and data science, it is important to make sure your data is protected from a malicious attack. 在当前现代世界中,密码术是必不...

weixin_26746861的博客 4172

ubuntu下文件加密方法

文件加密 openssl 密码方式加密 使用 openssl 加密一个文件 (data.zip 为原始文件,back.zip 为加密之后的文件) # openssl enc -e -aes256 -in data.zip -out back.zip 解释: enc 表示对文件进行对称加密或解密, -e 表示对一个文件进行加密操作,-aes256 表示使用 aes256 算法进行加密,-in 表示需要被加密的文件,-out 表示加密之后生成的新文件。加密过程中会要求输入一个加密密码,重复输入两次即可完

weixin_50511931的博客 4561

文件加密

最近开发一个手机上的类似于保险箱的功能,就是把选择某个文件然后这个文件就加密起来了,在普通的文件管理器中无法显示。 下面简单介绍下思路,在做这个功能之前,参考很多Android市场上的成熟产品,(,我表示中国人的模仿能力实在太强大了,这个也是教育的悲哀啊,)。 不过话说起来,如果不会创造,那么请模仿。 思路: 1、选择一个文件 2、选择一种加密算法(可以选择加密级别),来

流水不腐小夏 1540

电脑文件怎么加密?文件加密方法介绍

随着数字化时代的到来,电脑文件的安全性问题日益凸显。为了保护个人隐私和企业数据,文件加密成为了一项重要的安全措施。本文将详细介绍几种常见的电脑文件加密方法,帮助你更好地保护自己的数据安全。提供了两种主要的文件加密类型——金钻加密和移动加密,每种类型都采用了国际先进的加密算法,确保了加密后的文件具有极高的安全性。超级加密3000在操作上也非常人性化,它采用了与电脑资源管理器相同的设计语言,使得用户无需额外学习即可轻松上手。无论是进行文件加密还是解密操作,都只需简单的几步即可完成。

jiamisoft的博客 843

电脑文件加密_如何加密电脑文件和文件夹

这篇文章面向 Windows 用户。电脑上总会有那么几个文件想要锁起来,不希望别人看到。这篇文章分享2个加密软件,在微信公众号「学习屋」对话框回复「文件加密」「文件夹加密」可以获取。软件1安装和使用方法:温馨提示:此软件可以加密文件和文件夹。1、右键单击【大势至电脑文件加密软件.7z】,选择【解压到大势至电脑文件加密软件】。2、左键双击打开【大势至电脑文件加密软件】。3、左键双击【大势至...

weixin_39748773的博客 604

【文件加密】 如何加密TXT文件?

如何加密TXT文件?

okfone 奥凯丰的博客 5568

【文件加密】加密文件如何解密?

加密文件如何解密?

okfone 奥凯丰的博客 1406

加密文件怎么解密?电脑文件加密后的解密方法

以上便是加密文件解密方法的详细介绍,你学会了吗?我们在EFS加密文件上单击鼠标右键,选择“属性”,点击“高级”按钮,取消勾选“加密内容以便保护数据”,点击“确定”,随后再次点击“确定”即可将文件解密。打开软件,双击需要解密的金钻加密文件,在弹窗中输入密码,并在“操作类型”中选择“解密”,点击“确定”即可将文件解密到普通状态。在软件中选择需要解密的金钻加密文件,点击“解密”按钮,在弹窗中输入密码,点击“确定”即可。,在软件中选择需要解密的文件,点击“数据解密”按钮,在弹窗中输入密码,点击“确定”即可。

jiamisoft的博客 3104

Android 加密之文件加密(FBE)

一:加密简介: 加密是使用对称加密密钥对 Android 设备上的所有用户数据进行编码的过程。设备经过加密后,所有由用户创建的数据在存入磁盘之前都会自动加密,并且所有读取操作都会在将数据返回给调用进程之前自动解密数据。加密可确保未经授权方在尝试访问相应数据时无法进行读取。 Android 有两种设备加密方法,即文件级加密和全盘加密。 1)全盘加密(FDE):Android 5.0 到 Android 9 支持全盘加密。全盘加密是使用单个密钥(由用户的设备密码加以保护)来保护设备的整个用户数据分区。在启

小猪六月的博客 1万+

电脑文件夹怎么加密?文件夹加密方法介绍

另外,EFS加密功能无法在家庭版系统中使用,并且加密效果非常单一,很难满足不同的文件夹加密需求。下面我们就来了解一下文件夹加密的方法。其中,全面加密、金钻加密和移动加密采用国际先进的加密算法,拥有极高的加密强度,没有正确密码绝对无法解密,忘记密码不支持密码找回,需要牢记加密密码。文件夹加密是保护文件夹数据安全的最佳方法,文中为大家介绍了两种文件夹加密方式,大家可以根据自身的加密需求进行选择。来加密保护电脑文件夹,它不但拥有五种文件夹加密类型,还支持文件夹批量加密功能,可以让文件夹加密拥有更多选择。

jiamisoft的博客 1239
上一篇: IE“图片另存为”功能存在安全漏洞 SP2亦包括在内
下一篇: asp.net网站的载入界面的做法
aa2004
博客等级 码龄23年 0粉丝 22原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值