【问题标题】:Utf8 chars link changing to random values in LaravelUtf8 字符链接在 Laravel 中更改为随机值
【发布时间】:2020-01-24 05:56:19
【问题描述】:

在我基于 Laravel 的 Web 应用程序中,如果用户想要分享从浏览器链接复制的故事,那么 utf8 字符会自动更改为随机数字和字母的混合。

这是在浏览器上显示的链接:https://www.website.com/a/5-زمین-کی-حفاظتe138529f01d3

但是当我复制链接并想在某处分享时,它变成了https://www.website.com/a/%D8%B2%D9%85%DB%8C%D9%86-%DA%A9%DB%8C-%D8%AD%D9%81%D8%A7%D8%B8%D8%AA-5e138529f01d3

【问题讨论】:

  • 因为链接实际上是这样的,所以您的浏览器只是很好,可以对其进行解码以获得漂亮的显示。

标签: php laravel laravel-5


【解决方案1】:

由于 URL 通常包含 ASCII 集之外的字符,因此必须将 URL 转换为有效的 ASCII 格式。

这不是随机值,是ASCII格式,可以使用urlencode将非ASCII转ASCII格式。

urlencode('5-زمین-کی-حفاظتe138529f01d3')

输出:

5-%D8%B2%D9%85%DB%8C%D9%86-%DA%A9%DB%8C-%D8%AD%D9%81%D8%A7%D8%B8%D8%AAe138529f01d3

【讨论】:

  • 有什么解决办法吗???因为当用户想要与其他人分享故事时,这会让他们感到厌烦
  • @John URL 编码不是可选的额外内容(尽管许多开发人员都这样对待它。)您可以以文本形式向用户展示您的 URL,以便他们可以复制- 但是,如果在任何上下文或客户端应用程序中使用它,那么您将面临破坏的风险,那么 执行自动 URL 编码。
猜你喜欢
  • 2016-12-26
  • 2020-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-11
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
相关资源
最近更新 更多