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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевод строки в коды 
V
    Опции темы
Rickert
Дата 12.2.2009, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Вообще не могу сообразить. Есть строка:
"Центр: +31 C° Аэропорт: +30 C° 2 Академгородок: +30 C° Кэш & Керри, Трактовая 18: +31 C°"
В БД она хранится в таком виде:
"%D6%E5%ED%F2%F0%3A+%2B%33%31+%43%B0+++%0D%0A%C0%FD%F0%EE%EF%EE%F0%F2%3A+%2B%33%30+%43%B0+%32+%0D%0A%C0%EA%E0%E4%E5%EC%E3%EE%F0%EE%E4%EE%EA%3A+%2B%33%30+%43%B0+++%0D%0A%CA%FD%F8+%26+%CA%E5%F0%F0%E8%2C+%D2%F0%E0%EA%F2%EE%E2%E0%FF+%31%38%3A+%2B%33%31+%43%B0+%0D%0A"
Как в JavaScript конвертнуть обычную строку (var tmp="Центр") в другую кодировку, да так чтобы без самописных функций?
С первого взгляда - URL коды, но ни encodeURI, ни encodeURIComponent не спасают. Может тут кто с орлинным глазом и подскажем кодировку?

Это сообщение отредактировал(а) Rickert - 12.2.2009, 11:40


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Rickert
Дата 12.2.2009, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Как оказалось - это quoted printable кодировка. Через что её юзать в js?

Добавлено через 4 минуты и 27 секунд
Или нет? ХЗ, "Штрилиц" сказал что quoted printable (percent)


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
ksnk
Дата 12.2.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Вообще-то это последствия применения urlencode. Соответственно urldecode поможет на PHP шной стороне получить чего-то похожее на правду.

Хотя лучше бы в таком виде в базе не хранить, слишком многа букав... smile


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Rickert
Дата 12.2.2009, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Вообщем всё ясно. Засунув строку в http://www.encodeurl.com
Мы понимаем, что это всё-так URL кодирование. Но вопрос: какого чёрта, я вот сейчас создаю ява скрипт файл, затем пишу:
Код

...
var tmp="Центр"
var res = decodeURI(encodeURI(tmp));
...

В результате в res - фигня какя-то?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
ksnk
Дата 12.2.2009, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Если нужно обязательно на JS стороне, то "перекодировать" по таблице перекодировки. заменить все символы %XX на значения в UTF. Таблицу брать из jsHttpRequest'а к примеру:
Код

    /**
     * UCS-2BE -> 1-byte encodings (from #128).
     */
    var $_encTables = array(
        'windows-1251' => array(
            0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,
            0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,
            0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
            0x0098, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,
            0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,
            0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,
            0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,
            0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,
            0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
            0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
            0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
            0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
            0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
            0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
            0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
            0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
        ),


Немного навыков слесарных и золотой ключик в кармане smile



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
mogul82
Дата 12.2.2009, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

В результате в res - фигня какя-то?

Плохо настроенна кодировка. Попробуй в htaccess прописать кодировку.
PM MAIL   Вверх
Rickert
Дата 12.2.2009, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Да, как оказалось encodeURI() - кодирует UTF-8 в URL коды. Теперь получается надо перевести UTF-8 в, как вы утверждаете, windows-1251.
А это таблица сооветствия кого чему и как её юзать?

Добавлено через 4 минуты и 59 секунд
Цитата(mogul82 @  12.2.2009,  12:42 Найти цитируемый пост)
Плохо настроенна кодировка. Попробуй в htaccess прописать кодировку.

Этот вопрос уже решён. Я набирал текст в far'е, а там досовская кодировка была.
Вопрос про перевод URI кодов от UTF-8 в windows-1251 - в силе.

Добавлено через 10 минут и 49 секунд
Код на просторах сети нашёл:
Код
var trans = []; trans[0x401] = 0xA8; trans[0x451] = 0xB8;
for (var i = 0x410; i <= 0x44F; i++) trans[i] = i - 0x350; // >

function myEscape (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));
}

Даже думать сейчас не хочу ка это работает, просто вписал и всё как надо. Я домой, бывайте, всем спасибо! smile 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
mogul82
Дата 12.2.2009, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Этот вопрос уже решён. Я набирал текст в far'е, а там досовская кодировка была


Ну, вот и причина. Переведи текстовые файлы в UTF-8, и пропиши кодировку в htacces. Не забудь проверить БД.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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