Преобразование кириллицы в URL (Java)

419
23 января 2017, 18:40

Впервые с этим сталкиваюсь:

Вот это:

 https://tts.voicetech.yandex.net/generate?text=Наш%20текст%20гот+ов&format=mp3&lang=ru-RU&speaker=zahar&emotion=good&key=<API‑ключ>

Нужно преобразовать вот в это :

https://tts.voicetech.yandex.net/generate?text=%D0%9D%D0%B0%D1%88%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%D0%B3%D0%BE%D1%82+%D0%BE%D0%B2&format=mp3&lang=ru-RU&speaker=zahar&emotion=good&key=<API‑ключ>

Как это происходит? Во что он превращает кириллицу?

Почитал.Узнал.

URL url1 = new URL("https://tts.voicetech.yandex.net/generate?text=Наш%20текст%20гот+ов&format=mp3&lang=ru-RU&speaker=zahar&emotion=good&key=<API‑ключ>");
    String s = url1.toString();
    s = URLEncoder.encode(s, "utf-8");
    URL url = new URL(s);

не работает.

Что не так?

В общем при таком использовании выходит вот так :

Было :

https://tts.voicetech.yandex.net/generate?text=Наш%20текст%20гот+ов&format=mp3&lang=ru-RU&speaker=zahar&emotion=good&key=

Стало :

https%3A%2F%2Ftts.voicetech.yandex.net%2Fgenerate%3Ftext%3D%D0%9D%D0%B0%D1%88%2520%D1%82%D0%B5%D0%BA%D1%81%D1%82%2520%D0%B3%D0%BE%D1%82%2B%D0%BE%D0%B2%26format%3Dmp3%26lang%3Dru-RU%26speaker%3Dzahar%26emotion%3Dgood%26key%

Вывод :

он превращает в utf-8 вообще всё. Как превратить только русские буквы?

Answer 1

1.Создаем новую переменную,которая отвечает за русские буквы.

2.Методом преобразования в utf-8 проводим на ней операцию.

3.Делим наш URL в тех местах,где использовались русские буквы,а все русские буквы заменяем на переменную.

    String r ="Привет";
    r = URLEncoder.encode(r, "utf-8");
    System.out.println(r);
    URL url  = new URL("https://tts.voicetech.yandex.net/generate?text="+r+"&format=mp3&lang=ru-RU&speaker=zahar&emotion=good&key=");

В итоге часть кода с русскими буквами успешно превращается в :

   %D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82

URL запрос успешно отрабатывается.

READ ALSO
Ньюанс по дженерикам

Ньюанс по дженерикам

Вопрос может показаться крайне простым, однако, самую очевидную информацию, порой, бывает сложно "загуглить"В пример предложу инициацию ArrayList:

350
Помогите с Hibernate не создаются таблицы

Помогите с Hibernate не создаются таблицы

Помогите hibernate не создает таблицыВозможно нарушен мапинг!

417
Модификатор strictfp

Модификатор strictfp

Для чего нужен данный модификатор? И с чем его можно использовать?

338