Смена кодировки, гет запрос.

12
Hixon10
На сайте с 21.08.2010
Offline
125
1234

Добрый вечер. Есть небольшая проблема с передачей строки в разных кодировках.

1) мне приходит строка в utf-8.

$a = str();

2) $a нужно отправить на другую страницу гет запросом.

<a href="http://site.com/go.php?url=http://yandex.ru/search.php?q=<?php echo $a;?>">Поиск</a>
.

В результате, на другой странице у нас есть ссылка, которая берется из переменной url:

<a href="http://yandex.ru/search.php?q=<?php echo $a;?>">Поиск</a>

3) Теперь при нажатие по ссылки передается наш запрос, который мы искали, на другой сайт. Второй сайт работает в windows-1251, а первый - в utf-8.

У меня вопрос: на каком моменте нужно преобразовывать строку из utf-8 в windows-1251. Я пробовал это делать на стадии приема строки из функции str(), но получается - чушь. Что можно сделать, чтобы нормально передать значение? Менять кодировку у сайтов - нельзя.

Веду свой невзрачный блог (http://hixon.ru/).
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#1

если мне не изменяется память, то яндек принимает не утф, а rawurlencode()

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
Hixon10
На сайте с 21.08.2010
Offline
125
#2
LEOnidUKG:
если мне не изменяется память, то яндек принимает не утф, а rawurlencode()

Прошу прошения, забыл сказать, что домены были взяты абсолютно случайно.

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#3
но получается - чушь.

В каком смысле чушь?

Hixon10
На сайте с 21.08.2010
Offline
125
#4
LEOnidUKG:
В каком смысле чушь?

Например, пришла нам строка "строка".

$a = "строка" // utf-8

преобразовываем в windows-1251

$a = "������" // windows-1251

Ссылка:

<a href="http://site.com/go.php?url=http://yandex.ru/search.php?q=������">Поиск</a>

На 2ой странице ссылка:

<a href="http://yandex.ru/search.php?q=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD">Поиск</a>

На итоговой странице:

$a = "пїЅпїЅпїЅпїЅпїЅпїЅ"

а нужно:

$a = "строка" //windows-1251
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#5

А если вообще не преобразовывать?

Hixon10
На сайте с 21.08.2010
Offline
125
#6

$a = "строка" // utf-8

Ссылка:

<a href="http://site.com/go.php?url=http://yandex.ru/search.php?q=строка">Поиск</a>

На 2ой странице url:

<a href="http://yandex.ru/search.php?q=Строка">Поиск</a>

Ссылка:

<a href="http://yandex.ru/search.php?q=%D0%9F%D0%B5%D1%81%D0%BD%D0%B8%20%D0%B8%D0%B7%20%D0%A1%D1%83%D0%BF%D0%B5%D1%80%208">Поиск</a>

Ссылка в нижней панели показывается, как

<a href="http://yandex.ru/search.php?q=Строка">Поиск</a>

На итоговой странице:

url:

<a href="http://yandex.ru/search.php?q=Строка">Поиск</a>

запрос:

$a = "Супер";

Результаты поиска: ничего не найдено.

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#7

ну в принимающей стороне же можно же теперь перекодировать в win1251

Hixon10
На сайте с 21.08.2010
Offline
125
#8
LEOnidUKG:
ну в принимающей стороне же можно же теперь перекодировать в win1251

Именно на 2ом сайте использовать перекодирование? Да, было бы хорошо. Если я посылаю с своего сайта запрос в utf-8, а потом на 2ом сайте указываю в браузере эту же кодировку, то запрос верный. Т.е., перекодирование на 2ом сайте - было бы идеально. К сожалению, 2ой сайт - не мой.

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#9
Hixon10:
Именно на 2ом сайте использовать перекодирование? Да, было бы хорошо. Если я посылаю с своего сайта запрос в utf-8, а потом на 2ом сайте указываю в браузере эту же кодировку, то запрос верный. Т.е., перекодирование на 2ом сайте - было бы идеально. К сожалению, 2ой сайт - не мой.

ну тогда только перекодировка и сразу в rawurlencode

Hixon10
На сайте с 21.08.2010
Offline
125
#10

Значит, принимает строку в utf-8, загоняем её в windows-1251, затес сразу же в rawurlencode, а уже затем передаем эту строку?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий