如何将带有空格的字符串存储到数据库中并检索URL



我在Postgreql数据库中存储了商店,我从前端检索它们并将它们用作链接。但是,由于其中有空白,URL看起来像这个/New%20Shop。我不知道什么是正确的解决方案,我可以修剪前端链接部分的字符串,但这可能导致我无法查询搜索商店,因为数据库部分有空白。我还可以更改数据库,使其包含带下划线的空白字符串,并在前端部分用空白替换下划线。这些都是我想到的解决方案,但我很想学习正确的方法。非常感谢。

%20是在URL编码中对空白进行编码的方式。

没有单一的";正确的方式";没有将URL映射到对象的句柄,但大多数应用程序将存储";鼻涕虫";在数据库中,它是名称的URL安全版本(或者只使用数字id(。您可以使用段塞来查找匹配的实体。通常,它都是小写的,用-替换空格,并删除其他标点符号。有很多包和辅助函数可以将特殊字符(如带有重音符号的字母(转换为普通版本。例如,可以组合Lodash中的deburrkebabCase

const slugify = (title) => {
return _.kebabCase(_.deburr(title));
}
console.log(slugify("New Shop")); // logs "new-shop"
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>

最新更新