C#:导致错误:具有其值包含&;的字符串变量;?
编辑:我已经编辑了我的帖子 在处理一个项目(c#)时,我在一个XML文件(app.config)中有一个字符串(密码),它的值包含“&”字符。假设它是这样的:C#:导致错误:具有其值包含&;的字符串变量;?,c#,string,C#,String,编辑:我已经编辑了我的帖子 在处理一个项目(c#)时,我在一个XML文件(app.config)中有一个字符串(密码),它的值包含“&”字符。假设它是这样的: <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="MainConnectionString" value="Data Source=MyDataSource;
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="MainConnectionString" value="Data Source=MyDataSource;InitialCatalog=MyInitialCatalog;User ID=MyUserID;Password=ynhub&59=k31!890" />
</appSettings>
</configuration>
但编译器向我显示了一个错误,59下出现了一条弯曲的蓝线,表示“字符5十六进制值在XML名称中是非法的”
如何删除此错误?您想到的&不是字符串的一部分,而是源代码的一部分。仔细阅读代码,注意任何引号的位置…您想到的&不是字符串的一部分,而是源代码的一部分。仔细阅读代码,注意任何引号的位置…XML以&字符开始特殊字符,即著名的&;,() 因此,如果不将XML转换为&;,则无法在XML中使用&;。例如,即使在HTML链接中,也不允许(但仍然很常见)编写:
<a href="foo.php?foo=bar&bar=baz">
它必须写为:
<a href="foo.php?foo=bar&bar=baz">
没有人这样做,但HTML和XML都是这样指定的,尤其是XML对它的要求非常严格。XML以&字符开头特殊字符,即著名的&;,() 因此,如果不将XML转换为&;,则无法在XML中使用&;。例如,即使在HTML链接中,也不允许(但仍然很常见)编写:
<a href="foo.php?foo=bar&bar=baz">
它必须写为:
<a href="foo.php?foo=bar&bar=baz">
没有人这样做,但HTML和XML都是这样指定的,尤其是XML对它非常严格。你能发布你的代码吗?我更感兴趣的是看到编译器错误,因为在字符串中有“&”应该很好。你是否缺少引号字符,比如:string foo=一些文本和东西;而不是字符串foo=“some text&stuff”;?它没有得到任何错误。字符串g;g=“你好,你好吗?”;textBox1.Text=g;或者您正在尝试连接字符串“VB样式”?Dim s=“这是一个”&“字符串”。如果是这样,请使用+来代替。您能发布您的代码吗?我更感兴趣的是看到编译器错误,因为在字符串中包含“&”应该是非常好的。您是否缺少引号字符,例如:string foo=一些文本&东西;而不是字符串foo=“some text&stuff”;?它没有得到任何错误。字符串g;g=“你好,你好吗?”;textBox1.Text=g;或者您正在尝试连接字符串“VB样式”?Dim s=“这是一个”&“字符串”。如果是这样,则使用+代替。