Polskie fonty w operze

w dziale Opera
Kethoth napisał(a):

Tworząc strony internetowe część osób ma problem z kodowaniem polskich znaków, bo nie wyświetlają się w Operze. Co należy zrobić? Próbowałem konwertować Notatnikiem+, ale ciągle są ³êóæñ¿ŸŸ itp.

philips napisał(a):

Piszący stronkę deklaruje konkretny charset np.

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta http-equiv="Content-Language" content="pl">

Jeżeli Opera ma domyślnie ustawione

Widok -> Kodowanie znaków -> Wybór automatyczny
View -> encoding -> Automatic selection

nie będzie problemu z dekodowaniem kodu strony

Jeżeli autor nie umieścił delaracji charset=xxxxxxxx może być konieczne ręczne wybranie

Widok -> Kodowanie znaków -> Środkowoeuropejski

1 z 3 wariantów dekodowania [ISO-8859-2][ISO-8859-16][Windows-1250]

Co jest ustawione? Zrób podgląd strony przez :
Widok-> Źródło strony

Zajec napisał(a):

Może lepiej zacznijmy od początku...

Są trzy metody deklarowania kodowania (nie pamiętam ostatniej).

Pierwsza to informacja wysyłana wraz z nagłówkami plików przez serwer (Content-Type). Ma ona najważniejszy priorytet i jeśli istnieje, to przegladarka ma obowiązek właśnie jej słuchać.

Druga to nagłówek meta, który jest brany pod uwagę w przypadku braku deklaracji w nagłówku Content-Type. Ważne jest także, że jest respektowany tylko w przypadku dokumentów HTML.


Jeśli informacja wysyłana w nagłówku Content-Type dot. kodowania, w którym została zapisana strona - wszystko powinno działać.


Od strony teoretycznej to tyle, jeśli nadal masz kłopoty - podaj adres strony. Jak zrobisz to dziś to jeszcze się przyjżę probelmowi dokładniej :-)

_eP napisał(a):

Odgrzeję ten wątek bo problem mam bardzo podobny.
Chodzi mi o polskie znaki generowane przez skrypt uzytkownika.
O ile nie ma zadnego problemu z wezlami tekstowymi pobranymi z serwera czy z dysku to mam problem z tym samym gdy tworze je z poziomu skryptu uzytkownika - na ekranie mam kaszankę.

Probowalem chyba juz wszystkiego i nic nie pomaga ;(

Czy ktos juz z tym sie spotkal ?
Czy jest na to jakas dobra rada ?

Pozdrawiam

daroc napisał(a):

Możesz podać konkretny przykład gdzie coś nie działa?

_eP napisał(a):

Skrobię sobie swoj skrypt uzytkownika i wstawiam przy jego pomocy wezly tekstowe do "podrasowywanych" w ten sposob stronek.
Przykladowo gdy wezel tekstowy czy element HTML-a go zawierajacy jest sciagany przez protokol http to polskie fonty w takim wezle zawarte wyswietlaja sie OK. Ale gdy tą samą tresc skopiuję sobie do notatnika i wstawię ją do mojego skryptu ktory taki wezel doda w javaskrypcie to juz niestety polskie znaki sie krzacza.
Jak podgladam w notatniku w hexie to np. ą mam jako kod B9. Ten sam kod B9 tez mam gdy przegladam tresc wezla tekstowego zawierającego ą w pliku html poprawianej strony sciagnietej z sieci.

Wydaje mi sie ze jasno przedstawilem problem. Ostatnio mnie naszla w akcie desperacji mysl ze chyba zaczne sprawdzac kody liter z ogonkami na stonie i bede musial moje dodawane wezly tekstowe poprawiac aby zawieraly poprawne kody tych liter - tylko czy nie ma na to jakiegos rozwiazania systemowego aby nie trzeba bylo uciekac sie do tak brutalnych metod rolleyes ?

Pozdrawiam

(edit)
Sprawdzilem kody tych ą.
Przykladowo to co ja wpowadzam przy pomocy skryptu ma kod FFB9 a to co jest wczytane z witryny ma kod 0105 (261 dziesietnie)
Widac trzeba sie bedzie koniecznie bawic w przekodowywanie. cry

daroc napisał(a):

Widzę że już sam rozwiązałeś problem dokładniej przyglądając się kodom tych znaków. Możesz się wyposażyć w odpowiedni konwerter fontów. Albo ręcznie wyszukiwać (skopiować to złe ą i wpisać dobre, a następnie włączyć "zamień wszystkie" - opcja dostępna np. w notepad2).
A skąd pobierasz te "złe" teksty? Spróbuj przekopiować je bezpośrednio ze skryptu, zamiast z wygenerowanej już strony.

_eP napisał(a):

Originally posted by daroc:

Widzę że już sam rozwiązałeś problem dokładniej przyglądając się kodom tych znaków. Możesz się wyposażyć w odpowiedni konwerter fontów. Albo ręcznie wyszukiwać (skopiować to złe ą i wpisać dobre, a następnie włączyć "zamień wszystkie" - opcja dostępna np. w notepad2).
A skąd pobierasz te "złe" teksty? Spróbuj przekopiować je bezpośrednio ze skryptu, zamiast z wygenerowanej już strony.



Nie wiem co w tym momencie rozumiesz przez "zle teksty". Problem polega na tym ze dokladnie ten sam tekst tzn. ten sam kod zrodlowy jest w odmienny sposob interpretowany przez implementację javaskrypu w Operze.

Skoro Opera jest tak "mila" ze tworzy kod zrodlowy strony (z rozszerzeniem HTML) zamieniajac wszystkie kody 0105 na B9 ktore w moim notatniku (w trybie edycji) wyswietlaja sie dokladnie tak samo jak ą na stronie wyswietlanej w Operze to powinna byc rownie mila i traktowac w odwrotnym kierunku te same kody zrodlowe w ten sam sposob gdy sa one uzywane w skryptach uzytkownika.

Rozumiem ze moze to wymagac od wbudowanego mechanizmu javaskryptu w przegladarce pewnej inteligencji bo przeciez ten sam skrypt uzytkownika moze modyfikowac rozne strony zawierajace rozne dyrektywy odnosnie kodowania.
Ostatecznie bylbym całkiem zadowolony gdyby choc w skryptach uzytkownika mozna bylo umieszczac analogiczne dyrektywy zastepujace inteligencje mechanizmu interpretera javaskryptu wbudowanego w Operę.
Idealnie by bylo gdyby to wlasnie Opera byla tak mila i sama sobie generowala potrzebne jej dyrektywy do osiagniecia kompatybilnosci w interpretacji kodow na danej stronie.

Dlaczego to programista ma byc zmuszony do kombinowania jak kon pod gore by uzyc takiego edytora ktory wygeneruje odpowiednie kody dla mechanizmu javaskryptu wbudowanego w Operę ?
Albo do tego by wykonywac odpowiednie przekodowywanie w sposob jawny w skryptach uzytkownika ?

Skoro ktos powiedzial A i udostepnil bardzo fajny mechanizm w przegladarce czyli skrypty uzytkownika to powinien powiedziec rowniez i B zeby pisanie kodow zrodlowych ( a konkretnie sie tu rozchodzi o literaly znakowe ze znakami narodowymi) do tych skryptow bylo rownie proste jak zwyklych stron w HTML-u zawierajacych instrukcje w javaskrypcie.

Ktos moze powiedziec ze pisanie skryptow uzytkownika to zadanie nie dla idiotow i ze i tak powinienem byc zadowolony. A wedlug mnie jezeli Opera ma ambicje wytyczac takie nowe standardy jak skrypty uzytkownika to mechanizmy te powinny dzialac zgodnie jak w przyslowiowym szwajcarskim zegarku.
Problem w sumie jest dosyc banalny, ale najwieksze "zamieszanie" powstaje ( przynajmniej powstalo u mnie) z tego ze uzytkownik zaklada iz ma do czynienia z okreslonym ( wysokim) poziomem jakosci narzedzia jakie dostaje do reki. Gdyby to samo mnie spotkalo w przegladarce mikrosyftu to z pewnoscia szybciej bym doszedl do tego jak sobie poradzic i nie zadawalbym zadnych pytan bo i po co skoro i tak tam twoje potrzeby sa olewane.

Przy okazji tak juz na marginesie tego watku to uwazam ze skrypty uzytkownika powinny byc bardziej eksponowane w Operze. Przykladowo do instalacji powinny byc dolaczane przykladowe skrypty a mechanizm ich stosowania domyslnie zalaczony by widac bylo od razu dla kazdego jak olbrzymie korzysci i ulatwienia moga one dawac.

Pozdrawiam

daroc napisał(a):

Jeśli strona jest w ISO-8859-2 to, zdaje się, wystarczy że w skrypcie polskie znaki zostaną zakodowane właśnie w takim kodowaniu. Może znajdzie się teraz ktoś, kto dokładnie zna mechanizmy generowania treści. Obecnie korzystam z nieswojego komputera, dlatego przyjrzę się temu bliżej, gdy będę mógł poświęcić na to więcej czasu.

_eP napisał(a):

Originally posted by daroc:

Jeśli strona jest w ISO-8859-2 to, zdaje się, wystarczy że w skrypcie polskie znaki zostaną zakodowane właśnie w takim kodowaniu. Może znajdzie się teraz ktoś, kto dokładnie zna mechanizmy generowania treści. Obecnie korzystam z nieswojego komputera, dlatego przyjrzę się temu bliżej, gdy będę mógł poświęcić na to więcej czasu.



Problem polega na tym ze polskie fonty i nie tylko z reszta polskie trzeba wprowadzac przy pomocy kodow UTF-16, natomiast tresc skryptu w ASCII. Tak wiec zwykly edytor ktory zapisze caly plik w UTF-16 jest w tym przypadku bezuzyteczny.
Do pojedynczych polskich liter wystarczy stosowac \uxxxx : Przewodnik_po_języku_JavaScript_1.5:Literały+javascript+%22znaki+specjalne
Temat byl juz poruszany i rozwiazany tez tutaj:
http://my.opera.com/community/forums/topic.dml?id=193291
Jest tam też link do konwertera: http://www.puzzleclub.ru/files/convert_to_hex_unicode.html

Pozdrawiam