LINUX.ORG.RU

перекодировать url с русскими буквами


0

0

Всем привет!

есть проблема: Opera не хочет открывать сохраненные файлы с русскими буквами (у меня Опера 9.23, КДЕ, системная кодировка KOI8-R). Вобщем это логично, т.к. в url не должно быть русских букв, а КДЕ упорно сует опере именно такие адреса.

Я пробовал решить проблему вот как:

1) включить в настройках оперы волшебную галочку. не нашел.

2) включить в настройках КДЕ перекодировку URL (чтоб заменяло русские буквы на всякие %6F). тоже не отыскал.

3) вставить в opera.desktop перекодировку, чтоб работало по методу 2. Вот тут думал, все просто, но нет. никак немогу найти соответствующую утилиту.

Кто знает, как победить оперу более нормальным способом.. или скажите утилиту, которая превратит file://мой_файлик.html в file://%22%43%34%33%55%67%99%3d0%6а%.html

заранее спасибо

★★

в опере - не знаю, а konqueror должен открыть, нужная кодировка легко настраивается
смена имени, имхо, не лучшая идея, ибо первый вариант явно более читабелен))

grimp3ur
()

Что-то такое?

perl -e 'use Encode "decode";system("echo ".join(" ",map{s/([^\x20-\x7f])/sprintf "%%%02x",ord($1)/eg;$_}@ARGV));' $@

anonymous
()
Ответ на: комментарий от anonymous

Тьфу. "echo " только поменять на "opera ", разумеется. Решил проверить, потом скопировал назад в браузер, а поменять забыл.

anonymous
()

>или скажите утилиту

------------------------------------ #!/usr/bin/env python

import sys from urllib import quote

if len(sys.argv) != 2: print "usage: qoute urlstring" else: print quote(sys.argv[1], ":/") ------------------------------------

$ opera file:///$PWD/`./quote.py мой_файлик.html`

:)

rm
()

>или скажите утилиту

------------------------------------
#!/usr/bin/env python

import sys
from urllib import quote

if len(sys.argv) != 2:
print "usage: qoute urlstring"
else:
print quote(sys.argv[1], ":/")
------------------------------------

$ opera file:///$PWD/`./quote.py мой_файлик.html`

:/

rm
()

спать пора :)

------------------------------------
#!/usr/bin/env python

import sys
from urllib import quote

if len(sys.argv) != 2:
    print "usage: qoute urlstring"
else:
    print quote(sys.argv[1], ":/")
------------------------------------

$ opera file:///$PWD/`./quote.py мой_файлик.html`

rm
()

Кстати, у меня опера открывает файлы с кириллицой в названии. Opera 9.21, utf8

>KOI8-R

может в этом дело?

rm
()
Ответ на: комментарий от rm

гы! завалили скриптами) щас буду пробовать)

ierton ★★
() автор топика
Ответ на: комментарий от rm

> Кстати, у меня опера открывает файлы с кириллицой в названии. Opera 9.21, utf8

Да, как показало гуглование, с utf8 такой проблемы не возникает.

ierton ★★
() автор топика
Ответ на: комментарий от ierton

Увы, программы, хотя и работают, не вылечили оперу. Но хотябы теперь я знаю, как это делается)

ierton ★★
() автор топика
Ответ на: комментарий от ierton

Для koi :)

$ cat quote.py 
#!/usr/bin/env python

import sys
from urllib import quote

if len(sys.argv) != 2:
    print "usage: qoute urlstring"
else:
    print quote(sys.argv[1].decode("koi8-r").encode("utf8"), ":/")

$ opera file:///`quote ~/тест.html`

у меня работает :)

rm
()
Ответ на: комментарий от rm

> у меня работает :)

ха! новый вариант и правда работает! опера "вылечилась" строчкой в opera.desktop и теперь открывает русские файлы

Exec=bash -c 'opera -newwindow `quote %u`'

где quote - програма от rm.

ierton ★★
() автор топика
Ответ на: комментарий от rm

> Кстати, проверил из консоли - не открывает. Из наутилуса - всё ок :)

возможно, у тебя в консоли другая кодировка, не КОИ8-Р

ierton ★★
() автор топика
Ответ на: комментарий от ierton

>новый вариант и правда работает

хорошо :)

>quote - програма

:)

rm
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.