Mam kilka plików arabskich, angielskich i rosyjskich zakodowanych w utf-8. Próbując przetworzyć te pliki za pomocą skryptu Perla, pojawia się ten błąd:
Malformed UTF-8 character (fatal)
Ręczne sprawdzanie zawartości tych plików znalazłem w nich dziwne znaki. Teraz szukam sposobu, aby automatycznie usunąć te znaki z plików.
Czy w ogóle można to zrobić?
Odpowiedzi:
To polecenie:
wyczyści twój plik UTF-8, pomijając wszystkie nieprawidłowe znaki.
-f is the source format -t the target format -c skips any invalid sequence
źródło
pbpaste | iconv -f utf-8 -t -utf-8 -c | pbcopy
. Stworzyłem także przepływ pracy Alfreda z globalnym skrótem do usuwania wszystkich znaków specjalnych przez kierowanieascii
.iconv -f utf-8 -t ascii//TRANSLIT
rozwiązał mój problem. Konwertuje kręcone cudzysłowy na proste.-o
dla innego pliku wyjściowegoTwoja metoda musi czytać bajt po bajcie oraz w pełni rozumieć i doceniać mądrą bajtową konstrukcję znaków. Najprostszą metodą jest użycie edytora, który odczyta wszystko, ale tylko wypisze znaki UTF-8. Textpad to jeden wybór.
źródło
wykona robotę.
źródło