【问题标题】:mysql % due to spaces in db filepathmysql % 由于 db 文件路径中的空格
【发布时间】:2011-03-15 23:45:43
【问题描述】:

为什么 mysql 不处理空格,我该如何解决?

如果我在 db 中有一个带空格的路径名,它会用一个 % 代替空间,然后它就不起作用了?

public partial class UserProfile : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {

        OdbcConnection cn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver}; Server=localhost; Database=gymwebsite; User=root; Password=commando;");
        cn.Open();

        OdbcCommand cmd = new OdbcCommand("SELECT User.FirstName, User.SecondName, User.Aboutme, User.DOB, Pictures.picturepath FROM User LEFT JOIN Pictures ON User.UserID = Pictures.UserID WHERE User.UserID=1", cn);
        OdbcDataReader reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            Name.Text = String.Format("{0} {1}", reader.GetString(0), reader.GetString(1));
            Aboutme.Text = String.Format("{0}", reader.GetString(2));
            Age.Text = String.Format("{0}", reader.GetString(3));
            Image1.ImageUrl = String.Format("{0}", reader.GetString(4));
        }


    }
}

输出:

<div class="image">
                                                <a href="#"></a>
                                                <img style="border-width: 0px;" src="C:\Users\Public\Pictures\Sample%20Pictures" id="ctl00_ContentPlaceHolder1_Image1">
                                                &nbsp;</div>

mysql 中的字符集是拉丁语 1 和瑞典语或其他不确定如何再次找到它?

【问题讨论】:

  • 你确定是 MySQL 将 % 放在你的字符串中,而不是一些预处理函数首先对字符串进行编码?
  • 嗯,我不能确定,但​​不会发生在任何其他数据库上?
  • 贴一些代码,bc这听起来像你这边的问题......
  • @Garrith 您需要发布一些代码,并可能告诉我们您的数据库中的字符集是什么。但是,据我所知,MySQL 不会自动对字符串进行十六进制编码。
  • 说真的,这不能难倒所有人吗?

标签: c# asp.net mysql sql


【解决方案1】:

我认为你的问题是Image1.ImageUrl。这肯定会对传递给它的字符串进行 URL 编码。

【讨论】:

  • 测试一下。我的偏好是根本不使用图像控件。我更有可能在我的 aspx 文件中使用类似 `" />' 的东西。
猜你喜欢
  • 1970-01-01
  • 2015-06-13
  • 2014-09-07
  • 1970-01-01
  • 2012-05-09
  • 2011-11-27
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多