Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.07.2010, 13:54
Новичок на форуме
Отправить личное сообщение для skorpion Посмотреть профиль Найти все сообщения от skorpion
 
Регистрация: 04.07.2010
Сообщений: 3

Перекодировка текста
Всем привет!
Столкнулся с досадной неприятностью. Хотел сделать пару ссылок на теги, но в итоге вылетает ошибка, мол ничего не найдено... и в запросе какаято абра кадабра вида
Цитата:
Нагатинская
Тоесть у меня ссылки получаются на выходе вот такие
Цитата:
/tags/Митино
вот таким запросом (это дополнительные поля в движке DLE)
Цитата:
[xfgiven_metro2]
<a href="/tags/[xfvalue_metro2]">[xfvalue_metro2]</a>
[/xfgiven_metro2]
есть ли способ чтобы ссылки на выходе были в виде
Цитата:
/tags/%CC%E8%F2%E8%ED%EE/
чтобы производился поиск по тегам....

Слышал о перекодировке с помошью javascript, но не знаю что искать.
Скажите пожалуйсnа как это реализовать?
Ответить с цитированием
  #2 (permalink)  
Старый 04.07.2010, 14:48
Новичок на форуме
Отправить личное сообщение для skorpion Посмотреть профиль Найти все сообщения от skorpion
 
Регистрация: 04.07.2010
Сообщений: 3

Забыл дополнить
Пробовал вот такой код
<script type="text/javascript">
document.write("<a href=\"/tags/")
document.write(encodeURI("[xfvalue_metro2]"))
document.write("\">")
document.write("[xfvalue_metro2]")
document.write("</a>")
</script>


Вроде в ту сторону думаю, вот только всеравно чтото не то...

Ссылка получается вот такая /tags/%D0%9C%D0%B8%D1%82%D0%B8%D0%BD%D0%BE
и я всеравно возвращаюсь с того что начал...

Как правильно перекодировать?

Последний раз редактировалось skorpion, 04.07.2010 в 14:50.
Ответить с цитированием
  #3 (permalink)  
Старый 04.07.2010, 15:53
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от skorpion Посмотреть сообщение
Ссылка получается вот такая /tags/%D0%9C%D0%B8%D1%82%D0%B8%D0%BD%D0%BE
и я всеравно возвращаюсь с того что начал...

Как правильно перекодировать?
Она правильно перекодирована, ваш вопрос никоим местом не касается javascript решайте его на стороне сервера.
Ответить с цитированием
  #4 (permalink)  
Старый 04.07.2010, 16:58
Новичок на форуме
Отправить личное сообщение для skorpion Посмотреть профиль Найти все сообщения от skorpion
 
Регистрация: 04.07.2010
Сообщений: 3

Сообщение от Gozar Посмотреть сообщение
Она правильно перекодирована, ваш вопрос никоим местом не касается javascript решайте его на стороне сервера.
Но как же?

Вот конкретный пример
<script type="text/javascript">
function urlEncode(str) {
	// Простая проверка
	if (!str || typeof(str) == "undefined") return;
	// Создаем хеш для хранения символов, где ключ - сам символ,
	// а значение - его шестнадцатеричеый эквивалент
	var utf8Array = {};
	// Сначала добавляем стандартные 255 символов
	var i = j = j2 = 0;
	for (i = 0; i <= 255; i++) {
		j = parseInt(i/16); var j2 = parseInt(i%16);
		utf8Array[String.fromCharCode(i)] = ('%' + j.toString(16) + j2.toString(16)).toUpperCase();
	}
	// И отдельно проработаем кириллицу
	var rusAdditional = {
		'_' : '%5F', 'А' : '%C0', 'Б' : '%C1', 'В' : '%C2', 'Г' : '%C3', 'Д' : '%C4', 'Е' : '%C5',
		'Ж' : '%C6', 'З' : '%C7', 'И' : '%C8', 'Й' : '%C9', 'К' : '%CA', 'Л' : '%CB', 'М' : '%CC',
		'Н' : '%CD', 'О' : '%CE', 'П' : '%CF', 'Р' : '%D0', 'С' : '%D1', 'Т' : '%D2', 'У' : '%D3',
		'Ф' : '%D4', 'Х' : '%D5', 'Ц' : '%D6', 'Ч' : '%D7', 'Ш' : '%D8', 'Щ' : '%D9', 'Ъ' : '%DA',
		'Ы' : '%DB', 'Ь' : '%DC', 'Э' : '%DD', 'Ю' : '%DE', 'Я' : '%DF', 'а' : '%E0', 'б' : '%E1',
		'в' : '%E2', 'г' : '%E3', 'д' : '%E4', 'е' : '%E5', 'ж' : '%E6', 'з' : '%E7', 'и' : '%E8',
		'й' : '%E9', 'к' : '%EA', 'л' : '%EB', 'м' : '%EC', 'н' : '%ED', 'о' : '%EE', 'п' : '%EF',
		'р' : '%F0', 'с' : '%F1', 'т' : '%F2', 'у' : '%F3', 'ф' : '%F4', 'х' : '%F5', 'ц' : '%F6',
		'ч' : '%F7', 'ш' : '%F8', 'щ' : '%F9', 'ъ' : '%FA', 'ы' : '%FB', 'ь' : '%FC', 'э' : '%FD',
		'ю' : '%FE', 'я' : '%FF', 'ё' : '%B8', 'Ё' : '%A8'
	}
	for (i in rusAdditional) utf8Array[i] = rusAdditional[i];
	// Посимвольно заменяем символы на их шестнадцатиречные эквиваленты
    var res = "";
    for(i = 0; i < str.length; i++) {
        var simbol = str.substr(i,1);
        res += typeof utf8Array[simbol] != "undefined" ? utf8Array[simbol] : simbol;
    }
	// Пробелы заменяем на плюсы 
    res = res.replace(/\s/g, "+");
    return res;
}

</script>






<script type="text/javascript">
document.write("<a target=\"_blank\" href=\"/tags/")
document.write(urlEncode("[xfvalue_metro2]"))
document.write("/")
document.write("\">")
</script>


.....дальше окончание кода не касающееся перекодировки.

Но это както крупно, обьёмно и я не уверен что это правильно.
Но преобразует именно в то что нужно.

Хочется чтото покомпактнее, ведь здесь наверняка есть люди, кто с таким встечался и может грамотно обьяснить новичку что как.

Первоначально перекодированная ссылка
/tags/%D0%9C%D0%B8%D1%82%D0%B8%D0%BD%D0%BE
не работает (она перекодируется не в то что нужно, но символы похожи), а с помощью обработки вот этого javascript ссылка преобразуется в правильный формат в вид
/tags/%CC%E8%F2%E8%ED%EE/

Я просто не понимающий новичок и копаться на сервере хостера мне никто не даст. да и хостер тут не причем.
просто нужен совет или лучше решение в исполнении javascript.

Последний раз редактировалось skorpion, 04.07.2010 в 17:10.
Ответить с цитированием
  #5 (permalink)  
Старый 20.12.2010, 13:36
Новичок на форуме
Отправить личное сообщение для AndreiKA Посмотреть профиль Найти все сообщения от AndreiKA
 
Регистрация: 20.12.2010
Сообщений: 1

Проблема кодировки
столкнулся с такой вотпроблемой.
Испльзуюя Ajax при нажатии кнопки должна вылезти форма
но проблема в том что форма выводиться но слово на кнопке получаеться крокозяброй
ХЕЕЕЕЕЕЕЕЕЕЕЕЕЛП
это типо форма
<input type="text" name=url_mod />
<input value="Добавить" onclick="add_moduls()" type="button" />

а это скрипт ))
function add_moduls() {
var req = getXmlHttp()
var statusElem = document.getElementById('echo_window')
req.onreadystatechange = function() {

if (req.readyState == 4) {
statusElem.innerHTML = req.statusText

if(req.status == 200) {

statusElem.innerHTML =req.responseText
}

}

}
req.open('GET', 'add_moduls.php', true);
req.send(null);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контроль ввода текста в форму Derack Events/DOM/Window 11 09.01.2011 01:07
Изменение мигающего курсора при вводе текста m-mikle Элементы интерфейса 5 27.03.2010 13:51
Regexp replace с начала текста, а не строки qst13r1245r12 Общие вопросы Javascript 1 19.03.2010 09:30
Перекодировка текста Стихотворец Общие вопросы Javascript 9 29.01.2009 15:45
Firefox: перехватить соббытие при перетаскивании текста no_alex Общие вопросы Javascript 9 21.08.2008 18:02