Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2008-12-07 19:17:25

  kondzio14 - Użytkownik

kondzio14
Użytkownik
Zarejestrowany: 2008-02-14

zapisanie dowolnego pliku z innym kodowaniem niż systemowe ..

Kod:

$ locale
LANG=pl_PL.UTF-8
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=

I teraz pytanie.. czy jest możliwość zapisania dowolnego pliku tekstowego z kodowaniem iso-8859-2 ? Nie zmieniając przy tym kodowania dla systemu ..

Offline

 

#2  2008-12-07 19:26:25

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: zapisanie dowolnego pliku z innym kodowaniem niż systemowe ..

Nie bardzo rozumiem pytanie.

Czy chodzi ci o przekierowanie wyniku jakiegoś polecenia ze zmienionym kodowaniem?

Kod:

polecenie | iconv -f UTF8 -t ISO88592 > plik

Bo tak, to prawdopodobnie wystarczy dobrać odpowiednią opcję w programie, edytory zazwyczaj pozwalają na wybór kodowania podzas zapisu/tworzenia.

Zawsze możesz też przekonwertować gotowy plik:

Kod:

iconv -f UTF8 -t ISO88592 plik > plik.tmp && mv plik.tmp plik

Błogosławieni, którzy czynią FAQ.
[url=http://www.opencaching.pl]opencaching[/url] :: [url=http://dug.net.pl/sources.list]debian sources.list[/url] :: [url=http://www.linuxportal.pl/blogi/azhag/wpisy]coś jakby blog[/url] :: [url=http://dug.net.pl/]polski portal debiana[/url] :: linux user #403712

Offline

 

#3  2008-12-07 20:01:48

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: zapisanie dowolnego pliku z innym kodowaniem niż systemowe ..

vim:

Kod:

:e ++enc=strona-kodowa /sciezka/do/pliku
:w ++enc=strona-kodowa

Pierwszy otworzy plik /sciezka/do/pliku mając na uwadze, że zapisany on jest w kodowaniu strona-kodowa. Przekonwertuje ten zestaw znaków na ten zadeklarowany w vim-ie, dzięki czemu nie zobaczysz krzaków.
Drugie zapisze otworzony plik używając kodowania strona-kodowa. Przekonwertuje zestaw znaków zadeklarowany w vim-ie na inny.

Generalnie pożytkuj się dokumentacją swojego edytora, gdyż nie byłeś łaskaw powiedzieć o jaki program konkretnie chodzi.

Zapomniałem dodać:
Do konwersji znaków w już istniejących plikach można użyć [url=http://packages.debian.org/etch/konwert]konwert[/url] (wbrew pozorom, nie ma on nic wspólnego z KDE i jest narzędziem CLI). Prócz większych niż [tt]iconv[/tt] możliwości, ma on także funkcję zmiany kodowania istniejącego pliku (opcja [tt]-O[/tt]; [i]de facto[/i] przekierowuje on wyjście do pliku tymczasowego i zastępuje nim plik źródłowy, jednak robi to przezroczyście dla użytkownika — zupełnie jak [tt]sed -i[/tt]).

Ostatnio edytowany przez Minio (2008-12-07 20:12:17)


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

Offline

 

#4  2008-12-07 20:13:20

  kondzio14 - Użytkownik

kondzio14
Użytkownik
Zarejestrowany: 2008-02-14

Re: zapisanie dowolnego pliku z innym kodowaniem niż systemowe ..

Kwrite pozwala je zmieniać do wyświetlania, ale w innym zapisywania niż systemowe nie znalazłem.., a Ty widzisz takową opcję? A może inny edytor polecisz ?

Kod:

iconv -f UTF8 -t ISO88592 plik > plik.tmp && mv plik.tmp plik

O to mnie chodziło, Bóg zapłać:).

Offline

 

#5  2008-12-07 22:18:12

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: zapisanie dowolnego pliku z innym kodowaniem niż systemowe ..

kwrite w oknie zapisz jako pozwala wybrac kodowanie zapisywanego pliku (lista rozwijana w prawym gornym rogu)


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#6  2008-12-07 22:25:26

  kondzio14 - Użytkownik

kondzio14
Użytkownik
Zarejestrowany: 2008-02-14

Re: zapisanie dowolnego pliku z innym kodowaniem niż systemowe ..

Faktycznie:).

Offline

 

#7  2008-12-07 22:32:12

  fnmirk - Użytkownik

fnmirk
Użytkownik
Zarejestrowany: 2008-02-19

Re: zapisanie dowolnego pliku z innym kodowaniem niż systemowe ..

[quote="kondzio14"]Kwrite pozwala je zmieniać do wyświetlania,[/quote]
Jak miałem kde i korzystałem z kwrite to robiłem tak:
1. Otwierałem plik z oryginalnym kodowaniem np. systemowym utf8
2. Otwierałem drugie okno z pustym plikiem w którym zmieniałem wyświetlanie kodowania np. na cp1250.
3. Zaznaczałem tekst w wersji utf8 i wybierałem opcję kopiuj.
4. Wklejałem tekst do otwartego edytora z ustawionym drugim kodowaniem i zapisywałem pod wybraną nazwą.
Kiedyś działało jeszcze na Etchu. Obecnie nie wiem czy zadziała. Sprawdź jak chcesz.

Jednak konwertowanie jest prostsze i szybsze. Uzupełnienie informacji podanej przez [b]Minio[/b]: [url=http://forum.dug.net.pl/viewtopic.php?id=6598]jak korzystać z konwert (ostatni post)[/url].

[b]Edit:[/b]
O opcji jaką podał [b]bercik[/b] nigdy nawet nie pomyślałem w takim kontekście. Udostępnia przeciecz taką możliwość większość edytorów pod Linuksem.

Najprostsze rozwiązania znajdują się na wyciągnięcie ręki. Dziękuję [b]bercik[/b] za wskazówkę.

Ostatnio edytowany przez fnmirk (2008-12-07 23:12:42)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.023 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00017 SET CHARSET latin2
0.00029 SET NAMES latin2
0.00267 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.17.109.194' WHERE u.id=1
0.00187 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.17.109.194', 1715709305)
0.00077 SELECT * FROM punbb_online WHERE logged<1715709005
0.00733 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=12914 AND t.moved_to IS NULL
0.00010 SELECT search_for, replace_with FROM punbb_censoring
0.00419 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=12914 ORDER BY p.id LIMIT 0,25
0.00201 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=12914
Total query time: 0.0194 s