![]() |
![]() |
![]()
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%) ![]() ![]() |
wookieb ale problem w tym, że ja nie wiem jakie pola w bazie mają jakie kodowanie.
Nie rozumiem jeszcze po co mam używać iconv? Czy samo zastosowanie mb_convert_encoding nie wystarczy? Proszę czy mógłbyś mi wytłumaczyć jak po kolei zrobić tą konwersje? I jeszcze jedno jak wyciąć ze $stringu znaki spoza kodowania utf-8? Czyli co zrobić, żeby w konwertowanym stringu zostawić tylko znaki które są w utf-8 i nie potrzeba instalować na kompie kodowania chińskiego? Sprawdziłem jeszcze, że funkcja echo iconv_get_encoding ( $a ) nic nie zwraca. A wywołanie $a = iconv('gb2312','UTF-8', $a); powoduje błąd Detected an illegal character in input string Co robić? Ten post edytował nowy_pehapowiec 19.11.2009, 11:29:20 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.10.2025 - 03:13 |