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  2011-01-28 09:01:48

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

[C]Jaka zmienna lub funkcja zwraca kodowanie znaków w systemie?

Witam

Nie chodzi mi o zmienną z locali - bo te znam.
Chciałem zapytać, czy jest jakaś funkcja, która zwraca samo kodowanie znaków na aktywnej konsoli (w systemie).
Czy da się to jakoś uzyskać z powłoki, czy trzeba kombinować z $LANG i awk.

Konkretnie potrzebuję taką funkcję w C, do jednego programiku - autorespondera do maili - który obecnie nie dodaje kodowania do maila, skutkiem czego jak odpowiedź działa prawidłowo na Linuxie, to na Win$ jest ..., i odwrotnie.
A zamiast mu klepać utf-8 w kodzie, wolałbym dać mu funkcję, żeby sam wiedział, co ma wstawić, nawet, jak się znajdzie w chińskim komputerze :)))
same kodowania we wszystkich znanych mi  językach programowania obsługuje iconv - ale nigdzie nie widziałem, jak w nim zakodować detekcję aktywnego kodowania w systemie.

A chodzi mi o to, żeby w nagłówku wygenerowanego maila znalazło się prawidłowe kodowanie wiadomości, żeby nie było cyrku na innych systemach.

Pozdrawiam
;-)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#2  2011-01-28 11:14:56

  kuchar - Użytkownik

kuchar
Użytkownik
Skąd: Warszawa
Zarejestrowany: 2005-11-16
Serwis

Re: [C]Jaka zmienna lub funkcja zwraca kodowanie znaków w systemie?

Najlepiej sprawdzić jakie kodowanie jest w mailu, który przyszedł i odpowiedzieć takim samym. Do sprawdzenia kodowania w jakim plik został zapisany możesz użyć programu (jest też lib) enca.


Linux Registered User # 406343

Routing protocols enable routers to route routed protocols :)

Offline

 

#3  2011-01-28 11:27:39

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [C]Jaka zmienna lub funkcja zwraca kodowanie znaków w systemie?

Encę znam dokładnie, ale chodzi mi o poprawienie autorespondera Qmailowego.

Poza tym autoresponder odpowiada wiadomością:
o wiele prościej będzie, żeby ustawiał kodowanie systemu operacyjnego, aniżeli konwertować kodowanie do takiego, w jakim mail przyszedł.

Generalnie program nie będzie odsyłał wiadomości, tylko odpowiedź automatyczną.
W dodatku program istnieje, jest napisany w języku C, ja potrzebuję mu wbić do łba kilka poprawek.

Z tego wynika pytanie, jak to wykombinować w C, i wpakować do kodu autorespondera.

A najlepiej, żeby dało się z tego zrobić patcha, po co ktoś inny później ma się potykać o ten sam problem?
Chyba, że libenca -jest biblioteką używalną w C, w takim razie się przyda.

Pozdrawiam
;-)

Ostatnio edytowany przez Jacekalex (2011-01-28 11:28:29)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#4  2011-01-28 12:33:57

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: [C]Jaka zmienna lub funkcja zwraca kodowanie znaków w systemie?

Czy nie po to powstał UTF by nie mieć takich problemów? Czemu by nie wysyłać wszystkich maili w UTF-8?

Offline

 

#5  2011-01-28 12:42:54

  panjandrum - Użytkownik

panjandrum
Użytkownik
Skąd: Lublin/Kraków
Zarejestrowany: 2009-03-20

Re: [C]Jaka zmienna lub funkcja zwraca kodowanie znaków w systemie?


obshutdown - Opedbox shutdown dialog

Offline

 

#6  2011-01-28 13:50:09

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [C]Jaka zmienna lub funkcja zwraca kodowanie znaków w systemie?

Chyba tak właśnie zrobię, do autorespondera wrzucę polecenie enca do zmiany na utf8 i potem na żywca nagłówki z utf-8.

Tylko kłopot jest jeszcze z tematem zgodnym z RFC - gdzie znaki charakterystyczne są zmienione w encje ascii zgodnie z tym rfc.

Tylko że na C się znam, jak kura na pieprzu :)))

A może przy okazji ktoś wie, jak przetworzyć nasze znaki narodowe w taki bełkot:

Kod:

BRE Bank SA z siedzib=B1 w Warszawie przy ul. Senatorskiej 18, wpisany d=
o rejestru przedsi=EAbiorc=F3w prowadzonego przez S=B1d Rejonowy dla m.s=
t. Warszawy, XII Wydzia=B3 Gospodarczy Krajowego Rejestru S=B1dowego pod=
 numerem KRS 0000025237, posiadaj=B1cy numer identyfikacji podatkowej NI=
P: 526-021-50-88, o wp=B3aconym w ca=B3o=B6ci kapitale zak=B3adowym, kt=F3=
rego wysoko=B6=E6 wg stanu na dzie=F1 01.01.2011 r. wynosi 168.346.696 z=
=B3otych.

Bo wygląda to strasznie, ale za to działa znacznie lepiej we wszystkich mozillach, outlookach, itp, niż cokolwiek innego.

Wszelkie przykłady mile widziane ;)

Pozdrawiam

Ostatnio edytowany przez Jacekalex (2011-01-28 13:55:08)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)