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%)
|
Zyx Twoje rozwiązanie jest super, ale ma dużą wadę, jego napisanie jest troszkę trudne i bardzo czasochłonne.
Mi udało się wymyślić coś innego, ale nie wiem czy będzie dobre. 1 Wklejam tablice wartości HEX dla kodowania UTF-8 (http://www.utf8-chartable.de/). Tekst jest po angielsku, więc powinno wystarczyć, ale o tym potem. 2 Wszystkie pola z tekstem sklejam w jedną zmienną. 3 Następnie funkcją str_split rozdzielam znaki w tekście. 4 Każdy znak zamieniam funkcją bin2hex na wartości HEX i zapasuje do tablicy 5 Porównuje tablice z hexami z UTF-8 i z hexami z tekstu. Te które są w tekście a których nie ma w UTF zapisuje do kolejnej tablicy. 6 Sprawdzam jaka sekwencja hex w UTF-8 jest odpowiednikiem wybranych znaków. 7 Zamieniam w każdym polu "złe"hexy na "dobre" Czy to będzie działać? Jest w tym może jakiś błąd? pozdro |
|
|
|
nowy_pehapowiec Problem z konwersją nieznanych kodowań na UTF8 w bazie SQLITE 18.11.2009, 13:08:12
wookieb Pokaż jak używałeś funkcji z multibyte.
Co prawda ... 18.11.2009, 13:21:21
nowy_pehapowiec Najpierw sprawdziłem jakie jest kodowanie:
echo mb... 19.11.2009, 10:33:54
wookieb Jak używasz mb_detect_encoding to używaj jej z dru... 19.11.2009, 10:51:52
nowy_pehapowiec wookieb ale problem w tym, że ja nie wiem jakie po... 19.11.2009, 11:05:55
wookieb Trochę pomyślunku.
Przecież napisałeś, że znasz pr... 19.11.2009, 12:05:37
nowy_pehapowiec mb nie wykrywa żadnego kodowania poprawnie. Kodowa... 19.11.2009, 13:22:41
wookieb Wrzuć tą tabelę do jakieś pliku i wystam. Mogę się... 19.11.2009, 13:39:17
nowy_pehapowiec Udało mi się ustalić, że w tekście są jednocześnie... 20.11.2009, 12:56:48
Zyx Istnieje możliwość takiego sprawdzenia. Sekwencje ... 25.11.2009, 10:31:02 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 22:07 |