Jak zamienić \u0107 na 'ć'? Najlepiej funkcja. Może jest jakaś tablica w sieci. Nie mogę znaleźć. Aha. Chodzi o python 2.7.
Unicode \u... na polskie znaki.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Nie bardzo rozumiem co chcesz zamieniać na co. Chcesz gdzieś ten znak wypisać?
- Rejestracja: dni
- Ostatnio: dni
Powim dokładnie. Python 2.7 ma to do siebie, że ciężko coś zdekodować. Mam w pliku txt:
Przest\u0119pcza opowie\u015b\u0107
Jak to zmienić na język polski.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1028
Taki potworek chyba da radę:
import re
tekst = 'Przest\u0119pcza opowie\u015b\u0107'
zdekodowane = re.sub(r'\\u[0-9a-f]{4}', lambda x: unichr(int(x.group()[2:],16)), tekst)
print zdekodowane
Miej na uwadze, że w żadnym wypadku nie odpowiadam za błędy spowodowane tym kodem.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 310
Chociaż nie mogę zapisać do pliku. Coś jest nie tak. Ake dzięki.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Co faktycznie masz w pliku? Jakie bajty? Pokaż hexdump albo uploaduj taki plik. Bo wątpie zebyś miał tam literalnie ciagi znaków \ucośtam. Po prostu twój notepad tak to wypisuje. To nie problem pythona tylko brak zrozumienia czym jest kodowanie znaków.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 310
Mam w pliku .txt. to np.:
#EXTINF:-1,Przest\u0119pcza opowie\u015b\u0107
Jak zapisać w .txt to samo po polsku.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Nie. To ci się wyświetla jak otworzysz ten plik albo jak wypiszesz zawartość w jakiś sposób. Ja pytam jakie DANE są w pliku. Pokaż hexdump tego pliku albo go uploaduj!
Jeszcze raz: nie rozumiesz co to jest kodowanie znaków. Nie ma czegoś takiego jak zapisanie "po polsku"! Znaki są kodowane w jakiś sposób. Nie ma czegoś takiego jak literka ć. Taki znak w różnych kodowaniach jest zapisywany na różne sposoby. w ISO-8859-2 to będzie jeden bajt 0xe6 ale w Unicode to będą 2 bajty \u0107 a UTF-8 to będzie \xc4\x87
- Rejestracja: dni
- Ostatnio: dni
- Postów: 310
Shalom napisał(a):
Nie. To ci się wyświetla jak otworzysz ten plik albo jak wypiszesz zawartość
w jakiś sposób. Ja pytam jakie DANE są w pliku. Pokaż hexdump tego pliku albo go uploaduj!
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1028
No to jeszcze zabawniej się porobiło, ktoś wrzucił do Twojego pliku repr(string), zamiast stringa samego w sobie.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
No to mam złą wiadomość -> ktoś kto, tak samo jak ty, nie rozumie co to kodowanie znaków, generalnie nasrał do tego pliku. Teraz faktycznie nie ma za bardzo co z tym zrobić, poza szukaniem regexpami tych unicode escape i zamienianiem ich na faktyczne symbole z poprawnym kodowaniem.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 310
enedil napisał(a):
No to jeszcze zabawniej się porobiło, ktoś wrzucił do Twojego pliku
repr(string), zamiast stringa samego w sobie.
Można jaśniej?
Oki. Dam całęgo jsona. Może wam się uda zapisać listę m3u z tego po polsku.
Kiedyś widziałem taki parser. name.replace('\u...', 'ż').
Może jest jakiś spis znaków polskich w unicode? Napiszę sobie sam.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2384
W http://www.diveintopython3.net/strings.html masz ładnie wytłumaczone co to jest kodowanie znaków i jak wpływa na interpretację ciągu bajtów i przez kogo.
Patrząc na jsona i sposób zapisu polskich znaków, to nadaje się do działu WTF.
-- edited:
"Spis polskich znaków" masz na https://pl.wikipedia.org/wiki/Alfabet_polski
Są tam podane kombinacje u+...
- Rejestracja: dni
- Ostatnio: dni
- Postów: 490
Link z tabelą kodowań polskich znaków:
https://pl.wikipedia.org/wiki/Kodowanie_polskich_znaków