EKG - Polskie Znaki

Archiwalne, stare wpisy FAQ i HowTo Użytkowników
modry
Posty: 6
Rejestracja: 20 lipca 2009, 10:11

EKG - Polskie Znaki

Post autor: modry »

UWAGA! Ten sposób działa tylko, gdy korzystasz ze skryptu.

Kiedyś szukałem na tym forum rozwiązania problemu z polskimi znakami. Nie znalazłem odpowiedzi (żadne nie działały). Więc musiałem w skrypcie nie używać polskich znaków, bo krzaczki były. Jednak teraz znalazłem rozwiązanie!

1. Tworzymy gdzieś plik tekstowy o dowolnej nazwie (np. "plchars" - /home/modry/ekg/plchars). Otwieramy go w programie do edycji tekstu (ja użyłem KWrite). Na samym początku zmieniamy kodowanie na iso-8859-2 (w KWrite jest to: Narzędzia>Kodowanie>¦rodkowoeuropejskie (iso-8859-2)). Następnie wpisujemy tam:

Kod: Zaznacz cały

ą¡ćÆęÊł£ńÑóÓś¦ź¬ż¯
Potem otwieramy skrypt Pythona do ekg i przed funkcją handle_msg() wklejamy:

Kod: Zaznacz cały

def p(x):
   plik = open("/home/modry/ekg/plchars")   #zmieńcie na własną ścieżkę
   p = plik.read()
   p = p.replace("\r", "")
   l = ['a', 'A', 'c', 'C', 'e', 'E', 'l', 'L', 'n', 'N', 'o', 'O', 's', 'S', 'z,', 'Z,', 'z.', 'Z.']
   if x in l:
      i = l.index(x)
   else:
      i = 0
   return p[i]

def msg(uin, s):
   s = s.replace("ą", p("a"))
   s = s.replace("¡", p("A"))
   s = s.replace("ć", p("c"))
   s = s.replace("Æ", p("C"))
   s = s.replace("ę", p("e"))
   s = s.replace("ę", p("E"))
   s = s.replace("ł", p("l"))
   s = s.replace("£", p("L"))
   s = s.replace("ń", p("n"))
   s = s.replace("Ñ", p("N"))
   s = s.replace("ó", p("o"))
   s = s.replace("Ó", p("O"))
   s = s.replace("ś", p("s"))
   s = s.replace("¦", p("S"))
   s = s.replace("ź", p("z,"))
   s = s.replace("¬", p("Z,"))
   s = s.replace("ż", p("z."))
   s = s.replace("¯", p("Z."))
   ekg.command("msg %d %s" % (uin, s))
I teraz jeśli w skrypcie chcesz wysłać wiadomość wpisujesz msg(uin, "blabla ąąą").

PS. W samym EKG można jeszcze wyłączyć polskie znaki wpisując:

Kod: Zaznacz cały

set display_pl_chars 0
save
żeby zamiast krzaczków pojawiały się normalne litery (ale nie polskie znaki).

Dziękuję za uwagę :)

Pozdrawiam,
Modry - Kedzik

EDIT:
Jeśli robisz instrukcję warunkową (if), to wyraz chrząszcz będzie taki:

Kod: Zaznacz cały

"chrz"+p(a)+"szcz"
Zablokowany