[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: UTF-8
Aplikacja pracująca w Windows w
stronie kodowej 1250 ma sporządzać raporty
w UTF-8. Czy ktoś z szanownych grupowiczów rozwiązywał już taki problem
?
Interesuje mnie najprostsze rozwiązanie i jak najbardziej wydajne.
Czy Progress ma "wbudowaną" obsługę UTF-8 ?
Witam !
Używam strony kodowej UTF-8 w Progress'ie wersja 9.1B. W instrukcji
otwierającej strumień OUTPUT STREAM TO, na który posyłany jest raport
należy użyć frazy:
CONVERT TARGET nazwa_strony_kodowej
i dalej posyłać treść raportu na ten strumień a Progress dokona wszelkich
konwersji ze strony 'cpinternal' na zadaną stronę automatycznie. Podobine
przy czytaniu - w instrukcji INPUT STREAM FROM trzeba użyć
frazy:
CONVERT SOURCE nazwa_strony_kodowej (w naszym przypadku
będize to 'UTF-8')
co spowoduje konwersję z zdanej strony na stronę 'cpinternal'.
Oczywiście w pliku convmap.cp musi istnieć tablica konwersji ze strony
1250 na UTF-8 lub odwrotnie (wystarczy jedna z nich).
Taka tablica istnieje dopiero od wersji 9.1B Progress'a. We
wczesniejszych wersjach jej nie było, a Progress, nie wiedzić czemu, nie
sygnalizował jej braku tylko wykonywał abstrakcyjne konwersje (braki
innych tablic konwersji sygnalizował). Pisałem o tym chyba rok temu
na liście, bo kosztowało to mnie sporo zdrowia by wykryć co jest tego
przyczyną (w archiwum tej listy dyskusyjnej pewnie jest ten mój list ze
słowem UTF-8 w tytule z dnia 2001/03/27).
Jesli Pan nie ma wersji 9.1B, to mogę przysłać źródłową postać tej
tablicy konwersji. Trzeba ją dodać do pliku convmap.dat i plik
convmap.dat skompilować programem proutil z opcją
CODEPAGE-COMPILER.
Warto przypomnieć, że kody UTF-8 są nie zawsze jednobajtowe, np: polskie
litery są trzymane na dwóch bajtach. Jest ciekawa strona www na temat
unicodów, polecam:
http://www.unicode.org/
Pozdrawiam,
Henryk
Jusza
mailto:henju@pg.gda.pl
-------------------------------------------------
Ośrodek Informatyczny Politechniki Gdańskiej
Pracownia Rozwoju Oprogramowania
tel (058) 347-28-01
fax (058) 347-24-63
- References:
- UTF-8
- From: "Marcin Izdebski/Kat/ComputerLand/PL"