Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.09.2018, 13:56
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Кириллические символы в урле для location.search
Допускается ли использование кириллицы в url для передачи параметров для метода location.search?

Например урл: site.ru/page?id=0&title=слово

Получаю такой результат с абракадаброй:
const param = location.search.slice(1).split('&');
console.log(param); // ["id=0", "title=%D1%81%D0%BB%D0%BE%D0%B2%D0%BE"]


Можно как то получить это значение корректно или кириллицу нельзя использовать в таких случаях?
Ответить с цитированием
  #2 (permalink)  
Старый 30.09.2018, 15:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от MC-XOBAHCK
Получаю такой результат с абракадаброй
Это UTF, и вообще строки url кодируются, так что все в норме и все можно.
Ответить с цитированием
  #3 (permalink)  
Старый 30.09.2018, 15:52
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

laimas, подскажите пожалуйста, что мне нужно сделать чтобы абракадабру перегнать опять в кириллицу?
Я урл распарсиваю и у меня значение для параметра с кириллицей получается абракадаброй.
Ответить с цитированием
  #4 (permalink)  
Старый 30.09.2018, 15:57
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

decodeURIComponent(location.search)
а ещё если наплевать на ослика, можно юзать
new URLSearchParams(location.search)
что гораздо удобнее.
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 30.09.2018, 16:21
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Aetae,
Спасибо! Теперь работает правильно.
Ответить с цитированием
  #6 (permalink)  
Старый 02.10.2018, 15:39
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Прошу опытных пользователей подсказать по такой ситуации. Я распарсиваю урл в массив объектов. Какие символы можно использовать в урле для разделения между элементами массива?
Например у меня урл:
site.ru/page?id=0&title=слово??id=1&title=текст??id=2&title=test

Я код полностью написал, но пока для разделения между элементами массива поставил по два знака вопроса ??
А есть ли какие рекомендации что использовать вместо моих ??, чтобы избежать возможных конфликтов?
Ответить с цитированием
  #7 (permalink)  
Старый 02.10.2018, 15:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Странно, у вас кодировка страницы не совпадает с кодировкой URL?

Уберите вопросики вообще, передавайте парно, разбирая пары.
Ответить с цитированием
  #8 (permalink)  
Старый 02.10.2018, 16:13
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Сообщение от laimas Посмотреть сообщение
Странно, у вас кодировка страницы не совпадает с кодировкой URL?

Уберите вопросики вообще, передавайте парно, разбирая пары.
Я пока локально на компе пишу в файле js подключённому в html (всё utf-8).
А что значит "передавайте парно, разбирая пары"? Можете показать как должен быть такой урл:
site.ru/page?id=0&title=слово??id=1&title=текст??id=2&title=test

У меня title - это пользователи текстовую метку добавляют. Могут и вопросов туда натыкать, вот я и опасаюсь что некорректно может получиться.
Ответить с цитированием
  #9 (permalink)  
Старый 02.10.2018, 16:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если все в UTF, то какие проблемы с кириллицей?

Параметры (ключ-значение) в URL разделяются &, выдумывать что-то можно в том случае, если сложный составной параметр. Вопрос символ занятый тем более.

key=var&key=var&key=var&key=var

Разбить по & и получим все параметры, дальше разбиение по = .....
Ответить с цитированием
  #10 (permalink)  
Старый 02.10.2018, 16:41
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Сообщение от laimas Посмотреть сообщение
Если все в UTF, то какие проблемы с кириллицей?
Я не знаю почему так, это в браузере гугл-хром (обновлён до последней версии) на винде.

Сообщение от laimas Посмотреть сообщение
Параметры (ключ-значение) в URL разделяются &, выдумывать что-то можно в том случае, если сложный составной параметр. Вопрос символ занятый тем более.

key=var&key=var&key=var&key=var

Разбить по & и получим все параметры, дальше разбиение по = .....
Я так и делаю. У меня амперсанды проставлены между ключ-значение.
Просто мне нужно из урла получить массив объектов [{...}, {...}]

Я вот так делаю:
const parts = location.search.slice(1).split('??');
let params = [];

for (let i = 0; i < parts.length; i++) {
    params[i] = parts[i].split('&').reduce((prev, current) => {
        const [name, value] = current.split('=');
        prev[name] = value;
        return prev;
    }, {});
}
console.log(parts);
console.log(params);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Новая система управления сайтом Scripto CMS deepslam Ваши сайты и скрипты 38 31.01.2011 14:55
загрузка джаваскрипта file by file с номером ревизии(последней) в урле для файла sergdev Ваши сайты и скрипты 7 13.04.2010 10:52
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31