Страницы

Поиск по вопросам

понедельник, 18 марта 2019 г.

Картинки по кириллическому адресу

Есть картинка расположенная по кириллическому адресу вида http://вася-пупкин.бел/NAME.jpg И когда я пытаюсь её загрузить при помощи Glide или Picasso то ничего не выходит, никакой реакции. Как можно декодировать URL в подходящий вид? Сразу скажу что пробовал и не помогло:
Uri.encode(url) IDN.toASCII(post.getImgUrl())


Ответ

Метод который поможет перевести адрес из кириллицы в Punycode
public static String convertUnicodeURLToAscii(String url) throws URISyntaxException { if (TextUtils.isEmpty(url)) return url; url = url.trim(); // Handle international domains by detecting non-ascii and converting them to punycode boolean isAscii = CharMatcher.ASCII.matchesAllOf(url); if (!isAscii) { URI uri = new URI(url); boolean includeScheme = true; // URI needs a scheme to work properly with authority parsing if (uri.getScheme() == null) { uri = new URI("http://" + url); includeScheme = false; } String scheme = uri.getScheme() != null ? uri.getScheme() + "://" : null; String authority = uri.getRawAuthority() != null ? uri.getRawAuthority() : ""; // includes domain and port String path = uri.getRawPath() != null ? uri.getRawPath() : ""; String queryString = uri.getRawQuery() != null ? "?" + uri.getRawQuery() : ""; // Must convert domain to punycode separately from the path url = (includeScheme ? scheme : "") + IDN.toASCII(authority) + path + queryString; // Convert path from unicode to ascii encoding url = new URI(url).toASCIIString(); } return url; }

Комментариев нет:

Отправить комментарий