【问题标题】:C#: Caused error :having a string variable which its value contains &?C#:导致错误:有一个字符串变量,其值包含 &?
【发布时间】:2010-03-03 11:58:54
【问题描述】:

编辑:我已经编辑了我的帖子...

在一个项目 (c#) 上工作时,我在一个 XML 文件 (app.config) 中有一个字符串(密码),它的值包含“&”字符。假设它是这样的:

<?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 名称中是非法的”

如何消除此错误?

【问题讨论】:

  • 你能发布你的代码吗?
  • 我更感兴趣的是看到编译器错误,因为字符串中包含 '&' 应该很好。
  • 您是否缺少引号字符,例如:string foo = some text & stuff;而不是 string foo = "some text & stuff";?
  • 它没有得到任何错误。字符串 g; g = "你好,你好吗。"; textBox1.Text = g;
  • 或者你想连接字符串“VB 风格”? Dim s = "this " & "is a " & "string."。如果是这样,请改用 +。

标签: c# string


【解决方案1】:

【讨论】:

    【解决方案2】:

    XML 以 & 字符开头的特殊字符,即著名的 &、< ()。

    因此,您不能在 XML 中使用 & 而不将其转换为 &。例如,即使在 HTML 链接中,也不允许(但仍然很常见)编写:

    <a href="foo.php?foo=bar&bar=baz">
    

    必须写成:

    <a href="foo.php?foo=bar&amp;bar=baz">
    

    没有人这样做,但 HTML 和 XML 以这种方式指定它,尤其是 XML 对此非常严格。

    【讨论】:

      【解决方案3】:

      您想到的 & 不是字符串的一部分 - 它是您的源代码的一部分。仔细阅读代码,注意任何引号的位置...

      【讨论】:

        猜你喜欢
        • 2016-12-14
        • 1970-01-01
        • 2022-11-27
        • 2020-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-26
        • 1970-01-01
        相关资源
        最近更新 更多