in5ane
8.04.2015, 15:11:27
Cześć. Obsługuję jeden aktualizator w sklepie i program magazynowy wypluwa mi dane o produktach, w których jest również nazwa i brzmi ona np. "îwiecznik kostka 6x6x6cm" (powinno być "Świecznik", a nie "îwiecznik"). Następnie parsuję ten plik i wyciągam potrzebne mi dane. Jak dałem mb_detect_encoding na tym tekście, to wyskoczyło mi, że to jest "ASCII". Pytanie brzmi, jak to poprawnie skonwertować na UTF-8? Dziwna sprawa, ponieważ - o ile dobrze wiem - to ASCII jest podzbiorem UTF-8, a więc jeśli coś jest ASCII, to jest de facto już UTF-8. Możliwe więc, że dane wyplute z programu magazynowego są błędnie pokodowane? Można to jakoś naprawić w PHP?
robertpiaty
8.04.2015, 15:18:34
Wszystko jest możliwe. Zwłaszcza jeśli autorem programu są osoby z kraju w którym nie mają problemu z kodowaniem znaków (mam tu na myśli wyświetlanie specjalnych znaków alfabetu).
Zerknij tutaj.
http://php.net/manual/en/function.iconv.php Mi zdarzyło się już kiedyś tak, że nie byłem wstanie rozpoznać w czym są zakodowane znaki i z rozpaczy zrobiłem preg_repace, ale nie polecam tego rozwiązania.
in5ane
8.04.2015, 16:39:09
Próbowałem konwertować poprzez iconv i iconv zwracał mi false.