Program nie rozpoznaje polskich znaków diakrytycznych.

2015-01-06 16:01
0

Kod nie działa na komputerze wydziałowym. Znaczy nie uwzględnia Polskich liter diakrytycznych. Przykładowo Pawel lidl - zostanie zwrócone nazwisko. Paweł Lidl - nie zostanie zwrócone nazwisko zamiast tego jest none. Problem występuję tylko na koncie wydziałowym. Gdy zrobię wersję z inputem i z konsoli lokalnie wpisuje - Nie ma problemu. Lokalnie znaczy z mojego komputera.

 #!/usr/bin/python2
# -*- coding: utf-8 -*-

import re
import sys

wzorzec= u"^(Kosma|Jarema|[A-ZĆŁŚŹŻ][a-ząćęłńóśźż]*[^a]) ([A-ZĆŁŚŹŻ][a-ząćęłńóśźż]+)$""

for line in sys.stdin:
        line = line.decode("iso-8859-2").encode("utf-8")
        line=unicode(line,"utf-8")
        dopasowanie = re.search(wzorzec, line)
        if dopasowanie:
                print dopasowanie.group(2)
        else:
                print '<NONE>'

Za radą ogółu uczelnianego zmieniłam na : u"^((Kosma|Jarema|([A-Z]|Ć|Ł|Ś|Ź|Ż)([a-z]|ą|ć|ę|ł|ń|ó|ś|ź|ż)*[^a]) ([A-Z]|Ć|Ł|Ś|Ź|Ż)(([a-z]|ą|ć|ę|ł|ń|ó|ś|ź|ż)+))" Bo podobno on widzi polskie litery jako dwa znaki. Nic to nie dało.

Jeśli ktoś ma jakieś przypuszczenia, miał podobny problem czy cokolwiek naprawdę proszę o pomoc.


Life is Strange
edytowany 1x, ostatnio: lightinside, 2015-01-06 21:08
Pokaż pozostałe 3 komentarze
@lightinside - ja o tym wiem, jednak wypada posługiwać się prawidłowymi terminami, tym bardziej na forum programistycznym ;) - furious programming 2015-01-06 20:12
Ja też tak uważam, ale czy już trochę nie przesadzasz? Dużo osób używa takiego nazewnictwa, oczywiście to nie sprawia że jest ono prawidłowe. W google jest mnóstwo haseł typu kodowanie polskich znaków, zamiast kodowanie polskich znaków diakrytycznych. Zamiast folder mówię katalog, mało ? :D - lightinside 2015-01-06 20:44
Wybacz, ale to nie moja wina, że większość źle nazywa to co opisuje; A do tego reszta małpuje właśnie złe nazewnictwo, więc zamiast się oburzać - lepiej zapamiętać poprawne określenie i skończyć raz na zawsze z terminem "polskie znaki", który jest nieprecyzyjny i nieprawidłowy w większości przypadków; - furious programming 2015-01-06 21:03
Ja się nie oburzam ;) Ps nie wiem czy zauważyłeś, ale przyznałałam Ci racje i zmieniłam w poście. - lightinside 2015-01-06 21:05
Zauważyłem - dostałem powiadomienie o modyfikacji posta :) - furious programming 2015-01-06 21:14

Pozostało 580 znaków

2015-01-06 16:27
0

Na pewno masz plik zapisany w odpowiednim formatowaniu?


Pozostało 580 znaków

2015-01-06 16:30
0

Znaczy ten plik z pythonem? bo wejsciowy badałam to utf-8 ale ten z pythonem nie.


Life is Strange
edytowany 1x, ostatnio: lightinside, 2015-01-06 16:30

Pozostało 580 znaków

2015-01-06 16:36
0

#!/usr/bin/python2
# -- coding: utf-8 --
czyli coding: utf-8 - nie okłamuj interpretatora.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2015-01-06 16:44
0

W jakim sensie nie okłamuj?

Bez tego program nie pójdzie.

Myślałam (teraz widzę że źle) że ta deklaracja sprawia że podczas wykonywania skryptu, komendy, tekst etc są interpretowane jak "UTF-8". Nie że ta linijka sprawia że cały plik jest w utf-8.


Life is Strange

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0