Tom_Eagle
(Tom Eagle)
08.Март.2021 20:10:59
1
Всем привет,
На нашем форуме возникла проблема: при одномбоксировании URL он сам меняется.
Например:
Вот ссылка на наш сайт:
https://www.morphmarket.com/c/reptiles/pythons/ball-pythons/genetic-calculator/?s1=Pastel%2CHet+Clown&s2=Pastel%2CHet+Clown
А вот что отображается при одномбоксировании:
https://www.morphmarket.com/c/reptiles/pythons/ball-pythons/genetic-calculator/?s1=Pastel,Het%2BClown&s2=Pastel,Het%2BClown
А именно:
“%2C” заменяется на “,”.
“+” заменяется на “%2B”.
Из-за этого пользователи получают неверные результаты на нашем сайте.
Есть ли способ предотвратить это или какое-то обходное решение?
Richie
(Richie Rich)
08.Март.2021 20:19:04
2
Обе ссылки одинаковы:
https://www.morphmarket.com/c/reptiles/pythons/ball-pythons/genetic-calculator/?s1=Pastel,Het%2BClown&s2=Pastel,Het%2BClown
Не могли бы вы заключить их в обратные кавычки, чтобы мы могли увидеть их так, как вы задумали?
Tom_Eagle
(Tom Eagle)
08.Март.2021 20:58:56
3
Извините, моя ошибка
Вот как это должно выглядеть:
https://www.morphmarket.com/c/reptiles/pythons/ball-pythons/genetic-calculator/?s1=Pastel%2CHet+Clown&s2=Pastel%2CHet+Clown
А вот что происходит при одностороннем отображении:
https://www.morphmarket.com/c/reptiles/pythons/ball-pythons/genetic-calculator/?s1=Pastel,Het%2BClown&s2=Pastel,Het%2BClown
Если URL работает в обоих случаях, то какая разница?
Tom_Eagle
(Tom Eagle)
09.Март.2021 11:25:27
5
Потому что они приводят к разным результатам.
Вот что должно отображаться по ссылке:
А не это:
Это имеет огромное значение при правильном расчёте генетики.
david
(David Taylor)
24.Июль.2023 11:59:58
9
Похоже, что URL в исходном посте больше не обрабатываются как onebox (на сайте отсутствуют теги Open Graph). Но для протокола отмечу, что эта проблема должна была быть решена в
committed 10:55AM - 09 Aug 22 UTC
normalized_encode in addressable has a number of issues, including https://githu… b.com/sporkmonger/addressable/issues/472
To temporaily work around those issues for the majority of cases, we try parsing with `::URI`. If that fails (e.g. due to non-ascii characters) then we will fall back to addressable.
Hopefully we can simplify this back to `Addressable::URI.normalized_encode` in the future.
This commit also adds support for unicode domain names and emoji domain names with escape_uri.
This removes an unneeded hack checking for pre-signed urls, which are now handled by the general case due to starting off valid and only being minimally normalized. Previous test case continues to pass.
UrlHelper.s3_presigned_url? which was somewhat wide was removed.