Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передать кодированые данные PHP -> JS, с обеих сторон cp1251 
V
    Опции темы
Aco
Дата 3.6.2007, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.5.2007

Репутация: нет
Всего: нет



Hello world.

Вопрос не новый, но рыская по форуму так не удалось его решить.
Используется ajax и запрос отослан. PHP отобрало даные в cp1251 и необходимо закодировано(важно!) передать что бы js мог раскодировать, естествено в данных есть текст с кирилицей. Если со строны PHP хоть как-то понятно - cp1251->utf и urlencode, как понял, то со стороны js после раскодирования получается полная кракозябла, оно и понятно - ведь там cp1251...

Как быть?
PM MAIL ICQ   Вверх
Всемогущий
Дата 3.6.2007, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 25.6.2006
Где: Челябинск

Репутация: 5
Всего: 13



Я уже боюсь советовать но всё же посмотрите

http://forum.vingrad.ru/index.php?show_typ...pic=148377&


--------------------
Цитата(smartov @  16.1.2007,  13:26 Найти цитируемый пост)
Видел я PHP код, который пишут наСильники, никогда на php не писавшие  :D  То еще зрелище. Все пытаются сделать руками и через ж (как в С привыкли). Все пытаются память освобождать итд итп. 
PM MAIL ICQ   Вверх
Aco
Дата 3.6.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.5.2007

Репутация: нет
Всего: нет



Не бойся smile
Ну, видимо base64 буду юзать, спасибо.

если вопрос некоторым непонятен попробую кратко пояснить. В JS можно применить escape() и раскодировать в PHP даже с кодировкой cp1251, а у меня проблема нооборот, как надо закодировать на PHP так что бы можно было "unescape" данные на JS ?
PM MAIL ICQ   Вверх
GZep
Дата 3.6.2007, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



url encode + decode?


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Aco
Дата 3.6.2007, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.5.2007

Репутация: нет
Всего: нет



пытался, на выходе у JS каша...


всмысле что если влоб со стороны PHP rawurlencode, а JS unecape не прокатывает. Нужно что-то с кодировкой видимо сделать...

Это сообщение отредактировал(а) Aco - 3.6.2007, 19:48
PM MAIL ICQ   Вверх
SelenIT
Дата 4.6.2007, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Цитата(Aco @  3.6.2007,  19:23 Найти цитируемый пост)
В JS можно применить

encodeURIComponent/decodeURIComponent?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Aco
Дата 4.6.2007, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.5.2007

Репутация: нет
Всего: нет



И так.
Ниже JavaScript-аналог функций PHP  urlencode и urldecode для cp1251.

Код

var trans=[];
var snart=[];
for(var i=0x410;i<=0x44F;i++)
{
    trans[i]=i-0x350;
    snart[i-0x350] = i;
}
trans[0x401]= 0xA8;
trans[0x451]= 0xB8;
snart[0xA8]    = 0x401;
snart[0xB8]    = 0x451;

window.urlencode = function(str)
{
    var ret=[];
    for(var i=0;i<str.length;i++)
    {
        var n=str.charCodeAt(i);
        if(typeof trans[n]!='undefined')
            n = trans[n];
        if (n <= 0xFF)
            ret.push(n);
    }
    
    return window.escape(String.fromCharCode.apply(null,ret));
}

window.urldecode = function(str)
{
    var ret=[];
    str = unescape(str);
    for(var i=0;i<str.length;i++)
    {
        var n=str.charCodeAt(i);
        if(typeof snart[n]!='undefined')
            n = snart[n];
        ret.push(n);
    }
    
    return String.fromCharCode.apply(null,ret);
}



З.Ы. насамом деле со стороны PHP для кодирования надо юзать rawurlencode, но там не много дописать и будет работать для urlencode. А меня так устраивает.

Это сообщение отредактировал(а) Aco - 4.6.2007, 01:13
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0585 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.