Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.05.2014, 12:49
Rik Rik вне форума
Интересующийся
Отправить личное сообщение для Rik Посмотреть профиль Найти все сообщения от Rik
 
Регистрация: 06.06.2012
Сообщений: 24

Преобразовать Char в HEX
Добрый день!
Столкнулся с такой проблемой, решение не кажется тривиальным.
Передаю на сервер запрос через XMLHttpRequest - GET, на сервере проблемы с кодировкой и настроить php сценарий не могу, приходится работать как есть.

В итоге запрос вида /filter.php?search=привет не воспринимает, кодировал через encodeURIComponent, тоже не понимает.
А вот строку вида /filter.php?search=%ef%f0%e8%e2%e5%f2 берёт нормально, строку получил в каком то он-лайн конвертере.
Понимаю что по уму надо php править, но там не моё и туда не пускают, надо делать костыль на java и не смог.
Помогите плиз как строку преобразовать из var str = 'привет'; в var str1 = '%ef%f0%e8%e2%e5%f2';

Заранее Спасибо!!!
Ответить с цитированием
  #2 (permalink)  
Старый 14.05.2014, 12:58
Профессор
Отправить личное сообщение для depp Посмотреть профиль Найти все сообщения от depp
 
Регистрация: 22.04.2014
Сообщений: 151

javascript у вас в UTF-8, а сервер в какой кодировке?
Ответить с цитированием
  #3 (permalink)  
Старый 14.05.2014, 13:46
Rik Rik вне форума
Интересующийся
Отправить личное сообщение для Rik Посмотреть профиль Найти все сообщения от Rik
 
Регистрация: 06.06.2012
Сообщений: 24

Сообщение от depp Посмотреть сообщение
javascript у вас в UTF-8, а сервер в какой кодировке?
да скрипт в UTF-8 а сервер в windows-1251, для получения корректных данных в responseText, я overrideMimeType выставляю в "text/plain; charset=windows-1251".
А вот с отсылкой по ходу не срабатывает.

Последний раз редактировалось Rik, 14.05.2014 в 13:51.
Ответить с цитированием
  #4 (permalink)  
Старый 14.05.2014, 17:00
Профессор
Отправить личное сообщение для depp Посмотреть профиль Найти все сообщения от depp
 
Регистрация: 22.04.2014
Сообщений: 151

// Инициализируем таблицу перевода
var trans = [];
for (var i = 0x410; i <= 0x44F; i++) trans[i] = i - 0x350; // А-Яа-я
trans[0x401] = 0xA8;    // Ё
trans[0x451] = 0xB8;    // ё

to_win_1251 = 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 escape(String.fromCharCode.apply(null, ret));
}
to_win_1251('привет');

взято отсюда:
http://xpoint.ru/know-how/JavaScript...SRusskimiBu k
соотв-но можете подменить функцию encodeURIComponent, или escape как там указано. тогда использование станет более прозрачным.

Последний раз редактировалось depp, 14.05.2014 в 17:03.
Ответить с цитированием
  #5 (permalink)  
Старый 14.05.2014, 18:00
Rik Rik вне форума
Интересующийся
Отправить личное сообщение для Rik Посмотреть профиль Найти все сообщения от Rik
 
Регистрация: 06.06.2012
Сообщений: 24

Сообщение от depp
соотв-но можете подменить функцию encodeURIComponent, или escape как там указано. тогда использование станет более прозрачным.
Отлично заработало!!! Огромное спасибо!!!

Не стану я переопределять стандартные функции, т.к. не известно где ещё может вылезти косяк с этой перекодировкой.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перевести из RGB в HEX Telnet Общие вопросы Javascript 6 21.06.2019 20:57
Преобразовать код JQUERY в JS nattt Общие вопросы Javascript 2 30.04.2014 08:01
Преобразовать минуты в часы Marker Events/DOM/Window 5 17.11.2013 00:22
Преобразовать строку в Number с учетом региональных настроек Mutagena Общие вопросы Javascript 2 15.03.2011 01:22
Как получить char код символа? softrix Общие вопросы Javascript 2 12.10.2009 14:54