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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> URLEncode, как в J2me 
:(
    Опции темы
Anton Vatchenko
Дата 20.1.2006, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть ли какой-то алгоритм или функция, которая может преобразовать произвольную строку в запрос:
Hello world -> Hello%20world или Hello+world ????


--------------------
user posted image
PM MAIL   Вверх
batigoal
Дата 20.1.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151





--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
redrick
Дата 25.1.2006, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Lamer George
эта, а его же нету в j2me - предлагаешь посмотреть сорс ?


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
batigoal
Дата 25.1.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Цитата(redrick @ 25.1.2006, 22:48 Найти цитируемый пост)

эта, а его же нету в j2me - предлагаешь посмотреть сорс ?

Откровенно говоря, я просто был невнимателен к названию темы smile

А мысль интересная.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
javastic
Дата 26.1.2006, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Вот, наслаждайтесь smile

Код

    /**
    * Decodes URL to string.
    * @param data URL encoded string.
    * @return decoded string.
    */
    private final static String decodeURL(String data)
    {
        StringBuffer res = new StringBuffer();
        int i = 0, len = data.length();
        char ch;
        while (i < len)
        {
            ch = data.charAt(i);
            if (ch == '%')
            {
                char code = (char)Integer.parseInt(data.substring(i+1,i+3), 16);
                res.append(code);
                i += 3;
            }
            else if (ch == '\\' && (i+1 < len) && data.charAt(i+1) == 'u' && (i+6 <= len))
            {
                char code = (char)Integer.parseInt(data.substring(i+2, i+6), 16);
                res.append(code);
                i += 6;
            }
            else
            {
                if (ch == '+') res.append(' ');
                else res.append(ch);
                i++;
            }
        }
        return res.toString();
    }

    /**
    * Encodes string to URL.
    * @param data data string.
    * @return URL encoded string.
    */
    private final static String encodeURL(String sData)
    {
        StringBuffer sb = new StringBuffer();
        String sHex;
        char ch;
        for (int i = 0; i < sData.length(); i++)
        {
            ch = sData.charAt(i);
            if ((ch >= 'a' && ch <= 'z') ||
                (ch >= 'A' && ch <= 'Z') ||
                (ch >= '0' && ch <= '9') ||
                ch == '-') sb.append(ch);
            else if (ch == ' ') sb.append('+');
            else
            {
                sHex = Integer.toHexString((int)ch);
                if (ch > 0x7F)
                {
                    while (sHex.length() < 4) sHex = "0"+sHex;
                    sb.append("\\u");
                }
                else
                {
                    while (sHex.length() < 2) sHex = "0"+sHex;
                    sb.append('%');
                }
                sb.append(sHex);
            }
        }
        return sb.toString();
    }




--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Dancer
Дата 26.1.2006, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код


public clsss URLEncode {

    public static Hashtable URLEncodeTable = new Hashtable();

    static {
        URLEncodeTable.put(" ", "%20");
    }

/**
* @param str value wich will find in Hashtable for encoding symbol from user URL link to URL link understangin for HTTP server
* @return NULL if value not finded in Hashtable
*/
    public static String getSymbolEncode(String str) {
        return (String) URLEncodeTable.get(str);
    }

    private static void getSymbolEncode(String str, StringBuffer buf) {
        String tmpStr = getSymbolEncode(str);
        if( tmpStr != null) {
            buf.append(tmpStr);
        } else {
             buf.append(str);
        }
    }

    public static String getEncodedURL(String URLStr) throws Exception {
        if (URLStr == null) throw Exception("ERROR: String for encoding can't be NULL");
        StringBuffer sb = new StringBuffer();
        for (int i =0; i < URLStr; i++) {
             getSymbolEndode(URLStr.substring(i,i), sb);
        }
        return sb.toString();
    }
}



В своем коде можешь это использовать, только лишь расширь табличку Hashtable URLEncodeTable
Код

.....
String urlStr = "Hello world!!!";
String encodedURL = URLEncode.getEncodedURL(urlStr);
....



--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
redrick
Дата 26.1.2006, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



думаю за неделю человек уже раз 20 сам написал )


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




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


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

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