Mam do czynienia z plikiem, który ma wiele niewidocznych znaków kontrolnych, takich jak „od prawej do lewej” lub „non-joiner o zerowej szerokości”, inne spacje niż normalne spacje i tak dalej, i mam z tym problem.
Teraz chciałbym jakoś wyświetlić wszystkie litery w danym pliku, litera po literze (chciałbym powiedzieć „od lewej do prawej”, ale niestety mam do czynienia z językiem od prawej do lewej)) , jako punkty kodowe Unicode, używając tylko podstawowe narzędzia bash (jak vi
, less
, cat
...). Czy to jest jakoś możliwe?
Wiem, że mogę wyświetlić plik w systemie szesnastkowym hexdump
, ale musiałbym ponownie obliczyć punkty kodowe. Naprawdę chcę zobaczyć rzeczywiste punkty kodowe Unicode, więc mogę je wyszukiwać w Google i sprawdzać, co się dzieje.
edytuj: Dodam, że nie chcę transkodować na inne kodowanie (bo tego właśnie dowiaduję się online). Mam plik w UTF8 i jest w porządku. Chcę tylko znać dokładne współrzędne wszystkich liter.
Potrzebowałem punktu kodowego dla niektórych typowych emotikonów i wymyśliłem:
który drukuje
który jest punktem kodowym dla „UŚMIECHAJĄCE SIĘ TWARZEM Z UŚMIECHOWANYMI OCZAMI” .
źródło
Zainspirowany odpowiedzią Neftasa , oto nieco prostsze rozwiązanie, które działa z łańcuchami, a nie z pojedynczym znakiem:
Stworzyłem również skrypt Bash, który czyta ze standardowego wejścia lub z pliku i wyświetla oryginalny tekst wraz z wartościami Unicode:
źródło