问题描述:在Winform配置文件App.config中,如果配置的字符串中包含特殊字符(如&,*等)时,编译是报错的。
以下是配置一个url链接的操作:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="BrowserLoadUrl" value="http://192.168.1.144:8092/#/showGeneralInformation?id=6c03e46a-3891-46bc-a8ca-05cbcf9513dd&displayType=2"/>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>
以上代码编译是报错的:
原因分析:App.config是xml文件,在xml文件中特殊字符要进行HTML转义。实际报错位置为BrowserLoadUrl
项中的&符号。
解决办法:对字符串中的特殊字符进行转义。
显示 | 说明 | 实体名称 | 实体编号 |
空格 | |   | |
< | 小于 | < | < |
> | 大于 | > | > |
& | &符号 | & | & |
" | 双引号 | " | " |
© | 版权 | © | © |
® | 已注册商标 | ® | ® |
™ | 商标(美国) | ™ | ™ |
× | 乘号 | × | × |
÷ | 除号 | ÷ | ÷ |
针对上面的编译报错情况,只需把"&"进行转义就可以了,将&displayType
改为&displayType
成功通过编译。正确代码如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="BrowserLoadUrl" value="http://192.168.1.144:8092/#/showGeneralInformation?id=6c03e46a-3891-46bc-a8ca-05cbcf9513dd&displayType=2"/>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>