[PHP] wykrywanie błędnych znaków unicode

0

problem wygląda tak: mam sobie bazę z nieokreślonym kodowaniem, większość znaków udało mi się doprowadzić do porządku, ale jeszcze zdarzają się problemy. Czy zna ktoś sposób na wykrywanie w stringach nieprawidłowych znaków UTF? W przeglądarce wyświetlają się jako znaki zapytania, lub znaki zapytania w czarnym rombie. Innym efektem są błędy w validator.w3.org...

0

a czy lista znaków nie jest ciągle poszerzana i nie musiałbyś mieć po prostu aktualnej listy ?

0

Dowolny UTF to sposób zakodowania znaków i ma ustalone granice. Ale problem przedstawiony jest jako konwersja z nieokreślonego kodowania na nieokreślone (chociaż zawężone do pewnego zbioru - UTF-??).

Najlepiej by było określić także to pierwsze kodowanie :) Doprowadzanie do porządku zapewne zatarło cenne wskazówki a wartościowe są wszelkie znaki spoza ASCII.

0

ogólnie jest to też UTF-8, ale z fragmentami ISO-8859-2... W tej chwili najważniejsze dla mnie jest nie wysyłanie do klienta błędnych znaków.

anonim napisał o liście znaków - tak, taka lista nie była by złym pomysłem. Ma ktoś może namiary na taką, tylko nie w postaci pięknych klikalnych interfejsów, a w czymś co można łatwo wrzucić do swojego kodu?

0

UTF-8 ma jasno określone wartości - tylko niejasne jest dla mnie czy powinno dopuszczać się 5 i 6 bajtowe sekwencje, bo ograniczono do 4 i przykładowo kod w C jaki znalazłem operuje na maksymalnie czterobajtowych sekwencjach i dłuższe uzna za błędne. Na 99.9% możesz założyć, że twojego przypadku problem nie dotyczy.
http://www.cl.cam.ac.uk/~mgk25/ucs/utf8_check.c
W ten sposób można znaleźć pierwszy błędny bajt, a przerobić na PHP nie powinien być wielki problem ;)

0

wielkie dzięki, właśnie czegoś takiego szukałem

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