![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dostałem bazę danych w której dane były wpisane w różnych kodowaniach. Część w językach europejskich a cześć w azjatyckich, przy czym teksty powinny zawierać tylko znaki łacińskie. Teksty z bazy są wyświetlane przy użyciu kodowania utf8 ale na niektórych komputerach w miejscach spacji albo przecinków pojawiają się krzaki. Czyli muszę teraz przekonwertować wszystkie wpisy w bazie na utf8. Ale nie znam kodowań źródłowych, część jest w UTF8, cześć w GB2312, część w różnych wersjach ISO (np iso-8859-1).
W dodatku bazą jest SQLITE, która, ponoć domyślnie używa UTF8. Jak zamienić to kodowanie nie uszkadzając tekstów? Przejrzałem funkcje z pakietu multibyte ale nie działają w 100% dobrze. Jakieś pomysły? pozdrawiam Ten post edytował nowy_pehapowiec 18.11.2009, 13:21:53 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Udało mi się ustalić, że w tekście są jednocześnie znaki UTF i inne. Dlatego, nie udaje się żadnym funkcjom ustalić kodowana - bo w jednym stringu jest ich kilka.
Co robić? Bardzo proszę o pomoc - sprawa jest dla mnie niezmiernie ważna. A coś czuje, że sam jej nie rozwiąże. pozdrawiam Po godzinach spędzonych na przeszukiwaniu neta obawiam się, że nie ma gotowego rozwiązania mojego problemu. Ponieważ znaków niezgodnych z UTF8 nie jest dużo, więc będę zamieniać wartości bitów. W edytorze HEX sprawdzę, które bity odpowiadają za "złe" znaki, skopiuje ich wartości i przy pomocy zwykłego str_replace zamienię na takie wartości HEX jakie odpowiadają dobrym znakom. Czyli rzecz się sprowadza do zrobienia tabelki z odpowiednimi wartościami HEX. Jest jeden problem. Mogę coś przeoczyć. Dlatego potrzebuje listy wszystkich znaków z UTF-8 w zapisie HEX, żeby sprawdzić czy nic nie pomniałem. Czy ktoś wie gdzie znajdę taką listę? I dwa jak sprawdzić czy w stringu występują znaki inne niż w wybranej tablicy? Czyli jak sprawdzić czy string zawiera znaki z poza UTF-8, ewentualnie ASCII? Pomoże ktoś? Ten post edytował nowy_pehapowiec 20.11.2009, 12:57:04 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 20:58 |