写一个网站,遇到一个问题,发布之后,提示错误,可是即便打开错误提示(在web.config中打开),仍是只提示错误,没提示什么地方错误,这让我知道了:是webconfig自己的错误,通过排除,是连接字符串中的特殊字符形成的!而后网上搜了一下,找到了这篇文章:html
http://www.cnblogs.com/fordwayne/p/3200470.htmlweb
咱们知道在应用程序中嵌入链接字符串可能致使安全漏洞和维护问题。使用 Ildasm.exe(MSIL 反汇编程序) 工具能够查看编译到应用程序源代码中的未加密链接字符串。此外,若是链接字符串发生更改,则必须从新编译应用程序。所以,强烈建议将链接字符串存储在应用程序配置文件中。数据库
最近在学习SQL Server时遇到链接字符串包含特殊字符出现编译错误的问题。编程
App.config:安全
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <connectionStrings> <add name="DBconnStr" connectionString="Data Source=.;Initial Catalog=MyTest;User ID=sa;PassWord=123&456"/> </connectionStrings> </configuration>
因为数据库链接的密码中含有特殊字符"&",编译时出现以下以下错误信息:ide
显然编译器不认识"&456",怎么解决呢,总不能更换密码吧?工具
事实上App.config是xml文件,在xml文件中特殊字符要进行HTML转义。学习
HTML中<,>,&等有特殊含义(<,>,用于连接签,&用于转义),不能直接使用。这些符号是不显示在咱们最终看到的网页里的,那若是咱们但愿在网页中显示这些符号,就要用到HTML转义字符串(Escape Sequence)了网站
HTML特殊转义字符列表加密
最经常使用的字符实体
显示 |
说明 |
实体名称 |
实体编号 |
空格 |
|
  |
|
< |
小于 |
< |
< |
> |
大于 |
> |
> |
& |
&符号 |
& |
& |
" |
双引号 |
" |
" |
© |
版权 |
© |
© |
® |
已注册商标 |
® |
® |
™ |
商标(美国) |
™ |
™ |
× |
乘号 |
× |
× |
÷ |
除号 |
÷ |
÷ |
因此只要把"&"进行转义就能够了,将PassWord改成
PassWord=123&456"
成功经过编译。