🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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.
#438
Author: moozyk
Date: Fri, 15 Dec 2006 19:59
18 lines
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.
#439
Author: Stachu 'Dozzie' K.
Date: Fri, 15 Dec 2006 20:42
24 lines
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.
#440
Author: moozyk
Date: Fri, 15 Dec 2006 21:10
12 lines
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.
#441
Author: Googie
Date: Fri, 15 Dec 2006 22:10
23 lines
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.
#442
Author: moozyk
Date: Sat, 16 Dec 2006 13:04
23 lines
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.
#443
Author: Googie
Date: Sat, 16 Dec 2006 14:46
22 lines
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