在MySQL插入文字上清理字符

时间:2018-09-12 14:17:34

标签: mysql

我在表格中有一个文本字段,如下所示:

  

全新的平面图–这座“ Sandpiper”双人别墅公寓设有2个   卧室,2.5个浴室,书房和8英寸的室内门。

当我在网页上显示这些字符时,我会得到非常奇怪的字符,其中的“和”是这样出现的:

我可以像这样清除双引号:

UPDATE RESI SET MarketingRemarks = REPLACE(MarketingRemarks, '“', '"');
UPDATE RESI SET MarketingRemarks = REPLACE(MarketingRemarks, '”', '"');

原因错误:

UPDATE RESI SET MarketingRemarks = REPLACE(MarketingRemarks, '’', ''');
  

错误:[Err] 1064-您的SQL语法有错误;检查   对应于您的MariaDB服务器版本的手册   在第1行的'''')'附近使用的语法

我认为问题是连续三遍使用单引号'''

如何清除单引号?

2 个答案:

答案 0 :(得分:1)

要解决错误1064,您应该在反引号后面加上反斜杠:

[HttpGet]
public async Task<IActionResult> Challenge(string provider, string returnUrl, string user)
{
    if (string.IsNullOrEmpty(returnUrl)) returnUrl = "~/";
    if (Url.IsLocalUrl(returnUrl) == false && _interaction.IsValidReturnUrl(returnUrl) == false)
    {
        throw new Exception("invalid return URL");
    }
    if (AccountOptions.WindowsAuthenticationSchemeName == provider)
    {
        return await ProcessWindowsLoginAsync(returnUrl);
    }
    else
    {
        var props = new AuthenticationProperties
        {
            RedirectUri = Url.Action(nameof(Callback)),
            Items =
            {
                { "returnUrl", returnUrl },
                { "scheme", provider },
                { "login_hint", user }
            }
        };
        return Challenge(props, provider);
    }
}

要解决字符未显示在网页上的问题,您应该正确管理编码,这基本上需要三件事:

A。理想情况下,您的表应该具有utf8编码。

B。在网页后面的代码中,您应该告诉数据库您想要utf8编码。例如在PHP中使用mysqli:

UPDATE RESI SET MarketingRemarks = REPLACE(MarketingRemarks, '’', '\'');

C。您应该在页面的html标头中指定utf8编码:

$mysqli->set_charset("utf8"); 

答案 1 :(得分:0)

如果您可以从数据库中加载“错误值”并在Java中正确显示它们,则应尝试以这种方式进行转义:

GetBitmapBits

并使用新值更新该行。这应该可以解决。