Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кодирование данных при использовании метода load(), кириллица получается "скракозяблями" 
:(
    Опции темы
numerovan
Дата 11.7.2010, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здравствуйте, использую фунцию load() и передаю в неё строку (кириллицу), получаемая страница принимает скракозябли. Как сделать правильно ?
Можно конечно через яваскрипт перевести слово на латиницу, после при перехвате другой страницы снова перевести латиницу в кириллицу. Использую кириллицу в базе данных как поля, для это мне это и нужно , чтоб с поля выбрать нужные значения.
PM MAIL   Вверх
12345c
Дата 13.7.2010, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

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



Используйте страницы HTML в кодировке UTF-8 или используйте функцию escape()/unescape() для общения с сервером.


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
numerovan
Дата 17.7.2010, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



пробывал эти функции, почему-то ни чего не получилось. В итоге сделал две фунции на яваскрипте и на php. Яваскрипт переводит кириллицу в латиницу, после происходит передача на сервер, ну и там php из латиницы переводит в кирилицу, после идёт запрос к базе данных и всё считывается как пологается. Спасибо.
Код

function changeAlphabit(s){
    s = s.replace(new RegExp("й",'g'),"-yi-");
    s = s.replace(new RegExp("ф",'g'),"f");
    s = s.replace(new RegExp("я",'g'),"-ya-");
    s = s.replace(new RegExp("ц",'g'),"c");
    s = s.replace(new RegExp("ы",'g'),"-ye-");
    s = s.replace(new RegExp("ч",'g'),"-ch-");
    s = s.replace(new RegExp("у",'g'),"u");
    s = s.replace(new RegExp("в",'g'),"v");
    s = s.replace(new RegExp("с",'g'),"s");
    s = s.replace(new RegExp("к",'g'),"k");
    s = s.replace(new RegExp("а",'g'),"a");
    s = s.replace(new RegExp("м",'g'),"m");
    s = s.replace(new RegExp("е",'g'),"e");
    s = s.replace(new RegExp("п",'g'),"p");
    s = s.replace(new RegExp("и",'g'),"i");
    s = s.replace(new RegExp("н",'g'),"n");
    s = s.replace(new RegExp("р",'g'),"r");
    s = s.replace(new RegExp("т",'g'),"t");
    s = s.replace(new RegExp("г",'g'),"g");
    s = s.replace(new RegExp("о",'g'),"o");
    s = s.replace(new RegExp("ь",'g'),"-mz-");
    s = s.replace(new RegExp("ш",'g'),"-sh-");
    s = s.replace(new RegExp("л",'g'),"l");
    s = s.replace(new RegExp("б",'g'),"b");
    s = s.replace(new RegExp("щ",'g'),"-sch-");
    s = s.replace(new RegExp("д",'g'),"d");
    s = s.replace(new RegExp("ю",'g'),"-yu-");
    s = s.replace(new RegExp("з",'g'),"z");
    s = s.replace(new RegExp("ж",'g'),"-zh-");
    s = s.replace(new RegExp("э",'g'),"-e-");
    s = s.replace(new RegExp("х",'g'),"h");
    s = s.replace(new RegExp("ъ",'g'),"-tz-");
    s = s.replace(new RegExp("ё",'g'),"-yo-");
    return s;
}

Код

function changeAlphabit( $s ){
// тут важен порядок замены символов, в начале меняются с чёрточками, а после другое.
    $a = str_replace("-yi-", "й", $s);
    $a = str_replace("-ye-", "ы", $a);
    $a = str_replace("-ya-", "я", $a);
    $a = str_replace("-ch-", "ч", $a);
    $a = str_replace("-mz-", "ь", $a);
    $a = str_replace("-sh-", "ш", $a);
    $a = str_replace("-sch-", "щ", $a);
    $a = str_replace("-zh-", "ж", $a);
    $a = str_replace("-e-", "э", $a);
    $a = str_replace("-yu-", "ю", $a);
    $a = str_replace("-yo-", "ё", $a);
    $a = str_replace("-tz-", "ъ", $a);
    $a = str_replace("f", "ф", $a);
    $a = str_replace("c", "ц", $a);
    $a = str_replace("u", "у", $a);
    $a = str_replace("v", "в", $a);
    $a = str_replace("s", "с", $a);
    $a = str_replace("k", "к", $a);
    $a = str_replace("a", "а", $a);
    $a = str_replace("m", "м", $a);
    $a = str_replace("e", "е", $a);
    $a = str_replace("p", "п", $a);
    $a = str_replace("i", "и", $a);
    $a = str_replace("n", "н", $a);
    $a = str_replace("r", "р", $a);
    $a = str_replace("t", "т", $a);
    $a = str_replace("g", "г", $a);
    $a = str_replace("o", "о", $a);
    $a = str_replace("l", "л", $a);
    $a = str_replace("b", "б", $a);
    $a = str_replace("d", "д", $a);
    $a = str_replace("z", "з", $a);
    $a = str_replace("h", "х", $a);
    return $a;
}


PM MAIL   Вверх
bars80080
Дата 17.7.2010, 15:56 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



ну, это конечно ахтунг полный. применили хотя бы для str_replace() массивы. проще было бы


данная проблема отсутствует для кодировки UTF-8, когда и скрипты и сами страницы в ней находятся. может ещё потребуется установить соответствующий заголовок для отдающего скрипта

для кодировки cp1251 данная проблема решается комбинацией некоторых функций. только в зависимости от систем, их надо подбирать:
клиент - сервер - клиент:
encodeURIComponent() - rawurldecode(), iconv(), rawurlencode() - decodeURIComponent()
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




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


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

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