Skocz do zawartości

Kodowanie Znaków Narodowych


Andrzej Orkan

Rekomendowane odpowiedzi

chciałbym napisać w pythonie funkcję, który wszystkie możliwe znaki narodowe z różnych rodzajów kodowania przekształca na znaki z alfabetu łacińskiego, czyli np. ń = n, Ę = E, albo francuskie ç zamieni na c, lub greckie τ na t

 

prototyp takiej funkcji wyglądałby tak:

 

string_wyjściowy = funkcja(string_wejściowy[, rodzaj_kodowania])

 

nie bardzo potrafię znaleźć w google'u cokolwiek, co by mi pomogło - bo oni tam raczej zajmują się konwersją pomiędzy różnymi rodzajami kodowania, może wy znajdziecie jakiś kod, albo pythonowski moduł, który by umożliwił konwersję o którą mi chodzi?

 

mam jeszcze rozwiązanie takie, że stworzę sobie na piechotę, lub wygeneruję z różnych zestawów kodowych tablicę z bezpośrednimi wskazaniami co na co zamienić, ale to chyba czasochłonne i zrobię to w ostateczności

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jakbym musiał coś takiego robić, to robiłbym pośrednio: najpierw gotowcem do utf-8, a potem zostałoby jedno KODOWANE. Hm... nie pamiętam dokładnie jakie, ale w składni pcre są wyrażenia zapewniające dopasowanie do całej rodziny ,,podobnych'' znaków, np. e z wszelkimi ozdobnikami.

Zajrzyj też do dokumentacji tzw. ,,approximate conversion''. O ile pamiętam, powinna być zaimplementowana w najnowszych wydaniach Scintilli (C++) -- gdzieś koło 1.7x, ale na pewno w innych miejscach również.

No i zależy, jak daleko chcesz się posunąć. Chińszczyzna?

Odnośnik do komentarza
Udostępnij na innych stronach

No i zależy, jak daleko chcesz się posunąć. Chińszczyzna?

 

nie.. :) tu raczej mi chodziło o wszystkie znaczki, które można spotkać w Europie i Ameryce, czyli znaczki arabskie i dalekowschodnie odpadają, ale taką cyrylicę to trzeba już było "spłaszczyć"

 

sposób znalazłem i rzeczywiście jest to tablica kodowań różnych śmiesznych znaczków na odpowiedniki a-z

plik ze znaczkami jest zakodowany w utf8, jest odpowiednia dyrektywa w nagłówku

jakby co, to mogę udostępnić kod w pythonie

 

...przedtem po prostu się zastanawiałem, czy nie ma jakiś modułów, które zrobiłyby to za mnie i jeszcze umożliwiałyby konwersję utf-latin-iso i tyle, pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

...przedtem po prostu się zastanawiałem, czy nie ma jakiś modułów,

pcre. Nawet grep "[a-b]" | grep -v "b" wyrzuca z listy znaków utf wszystkie literki a-kształtne. Ale w Pythonie jakoś mi nie wychodzi. Może re jest zbyt toporny?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 5 months later...
pcre. Nawet grep "[a-b]" | grep -v "b" wyrzuca z listy znaków utf wszystkie literki a-kształtne. Ale w Pythonie jakoś mi nie wychodzi. Może re jest zbyt toporny?

 

W php polecam strtr() - np.

<?php

$foo = file_get_contents('php://input');
echo strtr( $foo, 'ąśćźżółĄŚĆŻŹÓŁ','asczzolASCZZOL') ;

 

potem np: cat plik.txt | php konwersja.php > wynik.txt

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...