Thread View: pl.comp.lang.tcl
6 messages
6 total messages
Started by moozyk
Fri, 15 Dec 2006 19:59
Problem z zapisem do pliku ze zmienionym kodowaniem.
Author: moozyk
Date: Fri, 15 Dec 2006 19:59
Date: Fri, 15 Dec 2006 19:59
18 lines
1440 bytes
1440 bytes
Witam, Mam problem ze zmianą kodowania znaków podczas zapisu do tekstu pliku.. Pobieram dane ze strony która ma kodowanie w utf-8. Chcę je zapisać do pliku tak by były czytelne (na serwerze jest iso..-1). Jak to zrobić? Próbowałem: set fp [open plik w] fconfigure $fp -encoding utf-8 // Myślałem, że jak zmienię na utf-8 to skrypt zapisze to czytelnie, nie działa. Próbowałem też z -encoding [encoding system] i też nie zapisuje poprawnie. Jak to zrobić dobrze? :) -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Problem z zapisem do pliku ze zmienionym kodowaniem.
Author: Stachu 'Dozzie' K.
Date: Fri, 15 Dec 2006 20:42
Date: Fri, 15 Dec 2006 20:42
24 lines
1566 bytes
1566 bytes
On 15.12.2006, moozyk <muzyk1954.SKASUJ@gazeta.pl> wrote: > Mam problem ze zmianą kodowania znaków podczas zapisu do tekstu pliku.. > > Pobieram dane ze strony która ma kodowanie w utf-8. Chcę je zapisać do pliku > tak by były czytelne (na serwerze jest iso..-1). Jak to zrobić? > > Próbowałem: > > set fp [open plik w] > fconfigure $fp -encoding utf-8 // Myślałem, że jak zmienię na utf-8 to skrypt > zapisze to czytelnie, nie działa. Jak myślisz, kodowanie czego zmieniłeś? > Próbowałem też z -encoding [encoding system] > i też nie zapisuje poprawnie. > > Jak to zrobić dobrze? :) -- <Kosma> Niektórzy lubią dozziego... <Kosma> Oczywiście szanujemy ich. Stanislaw Klekot
Re: Problem z zapisem do pliku ze zmienionym kodowaniem.
Author: moozyk
Date: Fri, 15 Dec 2006 21:10
Date: Fri, 15 Dec 2006 21:10
12 lines
1354 bytes
1354 bytes
Stachu 'Dozzie' K. <dozzie@dynamit.im.pwr.wroc.pl.nospam> napisał(a): > [...] No dobra, czyli źle. Próbowałem też puts $fp [convertfrom utf-8 $tekst] i puts $fp [convertto [encoding system] $tekst] ale nadal jakieś magiczne znaczki wpisywało zamiast poprawnych.. Nie mam pojęcia jak to zmienić, dlatego piszę na grupę. Help :) -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Problem z zapisem do pliku ze zmienionym kodowaniem.
Author: Googie
Date: Fri, 15 Dec 2006 22:10
Date: Fri, 15 Dec 2006 22:10
23 lines
1583 bytes
1583 bytes
moozyk wrote: > set fp [open plik w] > fconfigure $fp -encoding utf-8 // Myślałem, że jak zmienię na utf-8 > to skrypt zapisze to czytelnie, nie działa. Próbowałem też z > -encoding [encoding system] i też nie zapisuje poprawnie. Nie wiem w jaki sposób pobierasz dane ze strony - być może już tam zostają utracone cenne informacje o znakach... Zakładając jednak że dane w zmiennej masz wstawione poprawnie, to: fconfigure $fp -encoding binary -translation binary powinno załatwić problem. Jeśli jednak w zmiennej masz dane w takim kodowaniu jak [encoding names], to przy zapisie musisz wywoływać odpowiedni konwerter: puts $fp [encoding convertto utf-8 $zmienna] -- Pozdrawiam (Regards)! Googie
Re: Problem z zapisem do pliku ze zmienionym kodowaniem.
Author: moozyk
Date: Sat, 16 Dec 2006 13:04
Date: Sat, 16 Dec 2006 13:04
23 lines
1863 bytes
1863 bytes
Googie <googie@nospam.0rg> napisał(a): > [...] Niestety podane sposoby nie pomogły. Zwróciłeś mi jednak na coś uwagę: > Nie wiem w jaki sposób pobierasz dane ze strony - być może już tam > zostają utracone cenne informacje o znakach... Mam dwie funkcje, jedną która zamienia specjalne znaki na postać %CA (taki przykład) i drugą która zamienia te znaki na polskie litery. Nie działało mi to (a szybkość działania nie jest w tym skrypcie najważniejsza) więc napisałem na grupę.. Nie działało bo używając pakietu http znaki zamieniane są na w inny sposób, musiałbym napisać drugą funkcję która by je z powrotem zamieniała na polskie znaki.. Wszysto jednak działa gdy stronę otwieram poprzez: socket host port :) Trochę to zagmatwane, zapewne wolniejsze ale działa a ja inaczej nie umiem.. -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Problem z zapisem do pliku ze zmienionym kodowaniem.
Author: Googie
Date: Sat, 16 Dec 2006 14:46
Date: Sat, 16 Dec 2006 14:46
22 lines
1464 bytes
1464 bytes
moozyk wrote:
> Trochę to zagmatwane,
Owszem :)
Od początku - do pobrania strony możesz ustawić tryb binarny ("-binary
true" do "geturl"), żeby Tcl nie próbował interpretować danych strony
wg. swojego kodowania. Wtedy robisz (zakładając że dane masz
w 'data'):
set data [encoding convertfrom "kodowanie użyte na stronie" $data]
set data [encoding convertto "utf-8" $data]
set fp [open plik w]
fconfigure $fp -encoding binary -translation binary
puts $fp $data
close $fp
--
Pozdrawiam (Regards)!
Googie
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads