Program nie rozpoznaje polskich znaków diakrytycznych.

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.

0

Na pewno masz plik zapisany w odpowiednim formatowaniu?

0

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

0

#!/usr/bin/python2

-- coding: utf-8 --

czyli coding: utf-8 - nie okłamuj interpretatora.

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.

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