Post-передача кириллицы со страницы в utf-8 на стр
1.
TrydORg (17.09.2011 / 08:21)
Мое почтение, уважаемые форумчане!
Подключаю Merchant WebMoney к некоему сайту и столкнулся со следующей проблемой.
Сайт верстан на XHTML 1.1 в utf-8, а merchant.webmoney.ru в windows-1251. Соответственно post-данные name="LMI_PAYMENT_DESC" кириллицей выводятся каракулями.
Подскажите, пожалуйста, как можно передать кириллицу из страницы в кодировке utf-8 на страницу в windows-1251?
Спасибо.
2.
ктулху (17.09.2011 / 09:58)
Эммм... помоему это не предусмотрено протоколом.
Но вообще не латинские данные в запросе передаются в HEX, что по идее должно исключить такие проблемы.
А что именно ты передаёшь POST'ом? может имеет смысл заменить на латиницу?
3.
TrydORg (17.09.2011 / 10:30)
ShiftBHT, спасибо!
Я тут покопал еще и обнаружил, что сам Мерчант предлагает решение данной проблемы в виде поля LMI_PAYMENT_DESC_BASE64: "Описание товара или услуги в UTF-8 и далее закодированное алгоритмом Base64. Формируется продавцом. Если присутствует, то результат раскодирования будет подставлен вместо LMI_PAYMENT_DESC. Позволяет не зависеть от кодировки на сайте продавца".
Таким образом:
<input type="hidden" name="LMI_PAYMENT_DESC_BASE64" value="' . base64_encode("Тестовый платеж") . '" />
4.
ктулху (17.09.2011 / 11:59)
вполне себе вариант решения =)
5.
Вантуз-мен (17.09.2011 / 16:14)
3.
TrydORg, если там другие данные будешь передавать свои то желательно тоже кодируй их, там у них некоторые знаки не правльно передаются я уже точно не помню
6.
Валерий (17.09.2011 / 18:38)
Щас с телефона.. Через пару часов напишу ответ.. Сталкивался с этим.. Ответ находил через поисковик.
Там какое то свойство в форме просто прописывается.
И не надо ничего перекодировать.
7.
Валерий (17.09.2011 / 20:27)
Вот решение.
<form id="pay" method="post" accept-charset="cp1251" action="https://merchant.webmoney.ru/lmi/payment.asp" />
Нужно в форме прописать accept-charset="cp1251"
URL:
https://visavi.net/topics/24937