The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Конвертирование URL с русскими символами в unicode"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Конвертирование URL с русскими символами в unicode"  +/
Сообщение от myshansun email(??) on 19-Авг-14, 10:18 
Доброго времени суток, коллеги!

Подскажите как можно привести URLы вида:
http://someurl1.com/первая-страница/
к:
http://someurl1.com/п©п╣я─п╡п╟я▐-я│я┌я─п╟п╫п╦я├п╟/

Пользуюсь online-конвертором, но это не удобно, т.к. урлов очень много, к тому же он конвертирует так же символы, а мне нужно, чтобы конвертировались только не ascii-символы.

Все это мне нужно для блокировки данных URL на оборудовании, которое поддерживает только латиницу.

Спасибо!

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Конвертирование URL с русскими символами в unicode"  +/
Сообщение от myshansun email(??) on 19-Авг-14, 10:21 
>[оверквотинг удален]
> Подскажите как можно привести URLы вида:
> http://someurl1.com/первая-страница/
> к:
> http://someurl1.com/п©п╣я─п╡п╟я▐-я│я┌я─п╟п╫п╦я├п╟/
> Пользуюсь online-конвертором, но это не удобно, т.к. урлов очень много, к тому
> же он конвертирует так же символы, а мне нужно, чтобы конвертировались
> только не ascii-символы.
> Все это мне нужно для блокировки данных URL на оборудовании, которое поддерживает
> только латиницу.
> Спасибо!

Прошу прощения, когда опубликовал вид ссылок изменился :)
должно быть: %D0%BF%D0%B5%D1%80%D0%B2%D0%B0%D1%8F-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0 в конечном варианте.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Конвертирование URL с русскими символами в unicode"  +/
Сообщение от Andrey Mitrofanov on 19-Авг-14, 10:33 
>> Подскажите как можно привести URLы вида:
>> http://someurl1.com/первая-страница/
>  Прошу прощения, когда опубликовал вид ссылок изменился :)

https://www.opennet.ru/openforum/vsluhforumID4/416.html На оба Ж-) поста.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Конвертирование URL с русскими символами в unicode"  +/
Сообщение от myshansun email(??) on 19-Авг-14, 10:50 
>>> Подскажите как можно привести URLы вида:
>>> http://someurl1.com/первая-страница/
>>  Прошу прощения, когда опубликовал вид ссылок изменился :)
> https://www.opennet.ru/openforum/vsluhforumID4/416.html На оба Ж-) поста.

Андрей, спасибо! Но он конвертирует ВСЮ стоку к такому виду, а мне нужно только НЕ ascii-символы (т.е. английский алфавит и символы оставить как есть).

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Конвертирование URL с русскими символами в unicode"  +/
Сообщение от Andrey Mitrofanov on 19-Авг-14, 14:13 
> нужно только НЕ ascii-символы (т.е. английский алфавит и символы оставить как есть).

|recode ..h
- решил бы, *почти*, но перл ниже, судя по всему, короче и быстрее.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

4. "Конвертирование URL с русскими символами в unicode"  +1 +/
Сообщение от XAnder (ok) on 19-Авг-14, 13:35 
Если локаль UTF-8, и от перла не коробит, то как-то так:

$ echo "someurl1.com/первая-страница/" | perl -ne 's/([^\x00-\x7f])/sprintf "%%%2X", ord $1/ge; print'

PS. А ссылки движок форума действительно коверкает изрядно :-(

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

6. "Конвертирование URL с русскими символами в unicode"  +/
Сообщение от myshansun email(??) on 19-Авг-14, 17:25 
> Если локаль UTF-8, и от перла не коробит, то как-то так:
>
$ echo "someurl1.com/первая-страница/" | perl -ne 's/([^\x00-\x7f])/sprintf 
> "%%%2X", ord $1/ge; print'

> PS. А ссылки движок форума действительно коверкает изрядно :-(

Спасибо! То, что нужно!:)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Конвертирование URL с русскими символами в unicode"  +/
Сообщение от universite email(ok) on 20-Авг-14, 06:54 
> Если локаль UTF-8, и от перла не коробит, то как-то так:
>
$ echo "someurl1.com/первая-страница/" | perl -ne 's/([^\x00-\x7f])/sprintf 
> "%%%2X", ord $1/ge; print'

> PS. А ссылки движок форума действительно коверкает изрядно :-(

Perl - не Shell :)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Конвертирование URL с русскими символами в unicode"  +/
Сообщение от XAnder (ok) on 20-Авг-14, 08:47 
> Perl - не Shell :)

Отжежблин! Мне правда стыдно. Хны...

Ждём решения на чистом шелле :-) Интим^W sed, awk и прочая не предлагать!

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Конвертирование URL с русскими символами в unicode"  +/
Сообщение от Andrey Mitrofanov on 20-Авг-14, 09:52 
>> Perl - не Shell :)
> Отжежблин! Мне правда стыдно. Хны...
> Ждём решения на чистом шелле :-) Интим^W sed, awk и прочая не
> предлагать!

На чистом посикс-шеле (какой версии посикса?? какой реализации? версии реализации?!), или на bash 4.1+, или configure.ac со сборкой портабельного .sh, или $??? ?  B*)

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Конвертирование URL с русскими символами в unicode"  +/
Сообщение от Andrey Mitrofanov on 20-Авг-14, 10:28 
>>> Perl - не Shell :)
>> Ждём решения
> или на bash 4.1+,

Ну... Дождались!!

$ bash --version |awk '{print$4;exit}'
4.1.2(1)-release
$ xx() { local S="$1" D= LANG=C;while [ "$S" ]; do if [[ "$S" =~ ^[[:print:]]+ ]]; then D="$D${BASH_REMATCH[0]}"; S="${S:$((${#BASH_REMATCH[0]}))}"; else D="$D%$(printf "%02x" "'${S:0:1}")"; S="${S:1}"; fi; done; echo "$D"; }
$ xx https://ru.wikipedia.org/wiki/Оболочка_операционной_системы
https://ru.wikipedia.org/wiki/%d0%9e%d0%...
$ _

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру