Polskie znaki w nazwach archiwów MHT - drażniący problem !!!

w dziale Strony WWW w Operze
WGoral napisał(a):

Witam

Być może ten temat już się pojawił, ale pracuję z braku możliwości tylko via GPRS więc nie mogę sobie pozwilić na przemierzanie Sieci wzdłuż i wszerz, za co serdecznie przepraszam i proszę o zrozumienie smile Dodam tylko, że na Google nie znalazłem (albo nie zauważyłem) rozwiązania (ani nawet pytań w sprawie tego problemu)

A teraz problem.
Nie wiem czy to licho akurat mnie dotknęło, czy dotyka też Was... Chodzi o strony zapisane jako archiwa z rozszerzeniem *.mht
Otóż kiedy zawierają polskie znaki (a tak często się zapisują domyślnie) to jest problem z otwarciem takiego pliku z powrotem w Operze!
Problem dotyczy właściwie otwierania z zewnątrz, za pomocą "Otwórz za pomocą...".

Problem można pominąć usuwając polskie "ogonki" z nazwy, ale nie o takie rozwiązanie przecież chodzi :/
Ostatnie próby walki prowadziłem na wersji linuksowej, ale wiem, że ten sam problem ma Opera w windowsXp.
Pod uwagę brałem kilka parametrów jakie przyszly do głowy (nie wiem czy aby wszystkie) odpowiedzialnych za kodowanie znaków narodowych.

Brałem pod uwagę parametry z opera:config z sekcji Network.
Próbowałem:
dopisać do HTTP Accept Charset (na początku) wartość:

iso-8859-2

wyłączyć kodowanie adresów przez UTF-8

Powyższe próbowałem też wraz z eksportem zmiennej LC_ALL i LANG jako pl_PL.UTF-8 oraz en_US.
Zmienne te ustawiałem w pliku uruchamiania /opt/opera/bin/opera (moja ścieżka instalacji to /opt/opera) na samym początku pliku.
Doszedłem do wniosku, że przy ustawieniu samego nawet LC_ALL=en_US strony otwierają się z zewnątrz po dwukliku.
Wszystko byłoby OK, gdyby nie to, że po takiej modyfikacji kolejne zapisywane strony zawierają tym razem "krzaki" w nazwach (bo teraz de facto koduje nazwy jako ISO8859-1 z powodu użycia en_US), których znów nie da się otworzyć.

Nie wiem - czy ja coś pominąłem?
Lokalizację (język GUI) mam polskie, krzaków nie mam (co byłoby normalne, gdybym lokalizację globalną miał źle ustawioną).
Same strony też nie krzaczą (chyba, że twórca strony coś porąbie z kodowaniem).

Jak pisałem na początku problem odczuwam też w wersji na windows. Więc sam problem nie dotyczy z pewnością OS-a, ale Opery.
Pytanie brzmi: czy ktoś zna trick, który pozwoli ominąć ten szkopuł w obu OS-ach (a przynajmniej w Linuksie)?
Dodam, że interesowałoby mnie rozwiązanie, które pozwala uniknąć zmiany lokalizacji globalnej z ISO na UTF (chociaż wolałbym, żeby wszczyscy dali spokój z tym ISO i przeszli na UTF-8 tam gdzie to możliwe - usprawniłoby to pracę bigsmile)

Lokalizacja mojego Slack'a 12.0:
export LANG=pl_PL
export LC_ALL=pl_PL


Wersja Opery:
Linux: 9.10 # nie aktualizowałem z braku szybkiego łącza (tylko GPRS :()
Windows: 9.25 # tu akurat kumel przyniósł na pendrive-ie


Jeśli ktoś zna rozwiązanie lub link do niego - proszę o odpowiedź. Jak nie - cóż - wypadałoby to poprawić (tutaj zwracam się do programistów Opery :/) tym bardziej, że archiwa MHT zyskały na popularności, ze względów praktycznych... bigsmile

Pozdrawiam i jeszcze raz przepraszam za ewentualne roztrząsanie poruszanego już tematu

Barthezdeleted napisał(a):

Originally posted by WGoral:

Problem dotyczy właściwie otwierania z zewnątrz, za pomocą "Otwórz za pomocą...".


Nie wiem jak pod linuxem, ale pod XP problem występuje TYLKO po użyciu tego menu p Wystarczy przeciągnąć plik do okna Opery lub skojarzyć archiwa MHT/MHTML z nią :
WIN+E (Explorator Windows) Narzędzia Opcje folderów Typy plików
i wszytko działa yes

WGoral napisał(a):

Hmmm...

Nie wspomniałem o tym wcześniej, ale ustawione mam skojarzenie plików archiwów MHT w XP, więc domyślnie po dwukliku uruchamia się Opera. Problem w tym, że zaraz po uruchomieniu widać adres pliku w pasku adresu, pustą stronę i aktywny przycisk "Zatrzymaj ładowanie". W dodatku w adresie pliku polskie znaki, zostają pokazane wg tablicy kodowania ISO8859-1 zamiast ISO8859-2 (Linux) lub CP1250 (Windows) pomimo że normalnie mają polskie znaki według natywnego kodowania systemu. Wystarczy zastąpić zmienione znaki w pasku adresu, na prawidłowe polskie znaki np:

  ê => ę


żeby plik załadował się normalnie...

Poprzednio nie dodałem, że po ustawieniu lokalizacji na en_US (przed uruchomieniem Opery) w oknie dialogowym otwierania pliku nazwy plików także mają zmienione znaki (tzn. polskie znaki pokazane wg kodowania ISO8859-1 (Linux; w Windows nie pamiętam jaki jest CP... dla zachodnio-europejskich języków). Dzieje się tak, pomimo że GUI nie krzaczy nawet przy en_US)

Dodam, że na chwilę obecną stosuję prosty trick, który osobiście mnie nie zadowala. Stosuję go pod Linuksem. Polega na tym, że w katalogu /opt/opera/bin (wg mojej instalacji) lub w dowolnym miejscu w ścieżce uruchamiania PATH, umieszczony jest skrypt (wrapper), który nazywam np. opera_external z nadanymi uprawnieniami wykonywania, a w nim:

#!/bin/sh

export LC_ALL=en_US
/opt/opera/bin/opera "$@"



Uwaga: referencja do listy argumentów podanych do skryptu musi być wewnątrz nawiasów "" celem prawidłowej ewaluacji znaków specjalnych i spacji w nazwach plików (sprawdzałem! inaczej są problemy)

Teraz w środowisku powiązujemy rodzaj pliku z rozszerzeniem .mht nie bezpośrednio z programem opera lecz z naszym wrapperem. Od tej pory pliki MHT po kliknięciu otwierają się w "zmodyfikowanej" Operze. Ale do przeglądania Sieci powinniśmy uruchomić przeglądarkę bezpośrednio przez wywołanie opera. Inaczej będziemy mieli zapisywane pliki z kodowaniem ISO8859-1, czego nie chcemy!

Jednak jak pisałem wyżej, takie rozwiązanie nie jest dla mnie satysfakcjonujące, dlatego proszę o dalsze odpowiedzi smile