Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> разэскейпить js escape 
V
    Опции темы
Alexandr87
Дата 20.10.2008, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 9
Всего: 39



Есть строка полученная методом
Код

escape("строка ещё, одна строка");

Собственно строка имеет такой вид
%u0441%u0442%u0440%u043E%u043A%u0430%20%u0435%u0449%u0451%2C%20%u043E%u0434%u043D%u0430%20%u0441%u0442%u0440%u043E%u043A%u0430

Нужно в Java разэскейпить её взад.
PM Jabber   Вверх
powerOn
Дата 20.10.2008, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

Репутация: 47
Всего: 159



Цитата(Alexandr87 @  20.10.2008,  17:02 Найти цитируемый пост)
Нужно в Java разэскейпить её взад. 


Вот так выразился.  smile


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Samotnik
Дата 20.10.2008, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Код

unescape()


Добавлено через 3 минуты и 25 секунд
а вот с пом java 
http://www.javapractices.com/topic/TopicAction.do?Id=96

Добавлено через 6 минут и 32 секунды
Alexandr87, кстати вот твой результат
Цитата

строка ещё, одна строка

 smile 
PM MAIL   Вверх
Alexandr87
Дата 21.10.2008, 06:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 9
Всего: 39



Цитата(Samotnik @  20.10.2008,  21:25 Найти цитируемый пост)
а вот с пом java 
http://www.javapractices.com/topic/TopicAction.do?Id=96

Добавлено через 6 минут и 32 секунды
Alexandr87, кстати вот твой результат

я вот тока не пойму, каким методом ты это сделал?
PM Jabber   Вверх
Samotnik
Дата 21.10.2008, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



с помощью  unescape()
Ты же потом это значение сможеш передать куда угодно, это на случай того, если в  java коде нужно это. 
PM MAIL   Вверх
v2v
Дата 21.10.2008, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



Код

  private static String unescape(String s) {
    StringBuffer sbuf = new StringBuffer () ;
    int l  = s.length() ;
    int ch = -1 ;
    int b, sumb = 0;
    for (int i = 0, more = -1 ; i < l ; i++) {
      /* Get next byte b from URL segment s */
      switch (ch = s.charAt(i)) {
    case '%':
      ch = s.charAt (++i) ;
      int hb = (Character.isDigit ((char) ch) 
            ? ch - '0'
            : 10+Character.toLowerCase((char) ch) - 'a') & 0xF ;
      ch = s.charAt (++i) ;
      int lb = (Character.isDigit ((char) ch)
            ? ch - '0'
            : 10+Character.toLowerCase ((char) ch)-'a') & 0xF ;
      b = (hb << 4) | lb ;
      break ;
    case '+':
      b = ' ' ;
      break ;
    default:
      b = ch ;
      }
      /* Decode byte b as UTF-8, sumb collects incomplete chars */
      if ((b & 0xc0) == 0x80) {            // 10xxxxxx (continuation byte)
    sumb = (sumb << 6) | (b & 0x3f) ;    // Add 6 bits to sumb
    if (--more == 0) sbuf.append((char) sumb) ; // Add char to sbuf
      } else if ((b & 0x80) == 0x00) {        // 0xxxxxxx (yields 7 bits)
    sbuf.append((char) b) ;            // Store in sbuf
      } else if ((b & 0xe0) == 0xc0) {        // 110xxxxx (yields 5 bits)
    sumb = b & 0x1f;
    more = 1;                // Expect 1 more byte
      } else if ((b & 0xf0) == 0xe0) {        // 1110xxxx (yields 4 bits)
    sumb = b & 0x0f;
    more = 2;                // Expect 2 more bytes
      } else if ((b & 0xf8) == 0xf0) {        // 11110xxx (yields 3 bits)
    sumb = b & 0x07;
    more = 3;                // Expect 3 more bytes
      } else if ((b & 0xfc) == 0xf8) {        // 111110xx (yields 2 bits)
    sumb = b & 0x03;
    more = 4;                // Expect 4 more bytes
      } else /*if ((b & 0xfe) == 0xfc)*/ {    // 1111110x (yields 1 bit)
    sumb = b & 0x01;
    more = 5;                // Expect 5 more bytes
      }
    }
    return sbuf.toString() ;
  }



--------------------
PM   Вверх
ivg
Дата 21.10.2008, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


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

Репутация: 33
Всего: 81



Код

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class Main {

    public static void main(String[] args) throws Exception {
        // create a script engine manager
        ScriptEngineManager factory = new ScriptEngineManager();
        // create a JavaScript engine
        ScriptEngine engine = factory.getEngineByName("JavaScript");
        // evaluate JavaScript code from String
        engine.put("str", "строка ещё, одна строка");
        String s = (String) engine.eval("escape(str);");
        System.out.println(s);
        engine.put("str", s);
        s = (String) engine.eval("unescape(str);");
        System.out.println(s);
    }
}
 smile  smile

Добавлено через 3 минуты и 32 секунды
Шо за глюк с подсветкой кода....

Это сообщение отредактировал(а) ivg - 21.10.2008, 12:03
PM MAIL   Вверх
v2v
Дата 21.10.2008, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



Цитата(ivg @  21.10.2008,  12:02 Найти цитируемый пост)
Выделить всёкод Javascript


Цитата(ivg @  21.10.2008,  12:02 Найти цитируемый пост)
Шо за глюк с подсветкой кода....


java вдруг стала  java скриптом.


--------------------
PM   Вверх
Alexandr87
Дата 22.10.2008, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 9
Всего: 39



Цитата(Samotnik @  21.10.2008,  14:21 Найти цитируемый пост)
с помощью  unescape()
Ты же потом это значение сможеш передать куда угодно, это на случай того, если в  java коде нужно это.  

яж вроде написал, что нужно сделать на Java, а не на JS.


v2v, ты код на предложенных данных пробовал - у меня фигня получается.


ivg, спасибо!!! - как-то не подумал, использовать встроенный интерпретатор. Будет время, надо будет наверное в эту сторону копнуть и вытащить функцию unescape из кода интерпретатора и вызывать ее напрямую.
PM Jabber   Вверх
Samotnik
Дата 22.10.2008, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Цитата

яж вроде написал, что нужно сделать на Java, а не на JS.

яж вроде дал ссылку, где реализованно на  Java 
PM MAIL   Вверх
Alexandr87
Дата 22.10.2008, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 9
Всего: 39



Цитата(Samotnik @  22.10.2008,  12:39 Найти цитируемый пост)
яж вроде дал ссылку, где реализованно на  Java

что-то не нашел я в той ссылке функции, которая это делает. Ткни пожалуйста.
PM Jabber   Вверх
Samotnik
Дата 22.10.2008, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Alexandr87,  ой  прошу прощения  smile  не ту ссылку  дал 
хотел вот эту http://java.sun.com/developer/technicalArt...ktop/scripting/ 
или вот эту http://www.javenue.info/post/80
у меня до сих пор эти 3 вкладки открыты
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




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


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

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