Witam,
Podczas odczytywania zawartości pliku pdf mam problem z polskimi znakami.
Dodam, że każdy znak jest poprzedzony liczbą 0, lub 1, to może sugerować kodowanie UTF-16, ale nie udało mi się tego prze konwertować na utf-8 za pomocą "php'owych" funkcji - dlaczego ?
Napisałem jednak funkcję, która takiej konwersji dokonuje:
function utf16_to_utf8( $_text )
{
$text = iconv("cp1250","utf-8", $_text);
$trans = array(
"\x01\x04" => 'Ą', "\x01\x05" => 'ą',
"\x01\x06" => 'Ć', "\x01\x07" => 'ć',
"\x01\x18" => 'Ę', "\x01\x19" => 'ę',
"\x01\x41" => 'Ł', "\x01\x42" => 'ł',
"\x01\x43" => 'Ń', "\x01\x44" => 'ń',
"\x00\xd3" => 'Ó', "\x00\xf3" => 'ó',
"\x01\x5a" => 'Ś', "\x01\x5b" => 'ś',
"\x01\x79" => 'Ź', "\x01\x7a" => 'ź',
"\x01\x7b" => 'Ż', "\x01\x7c" => 'ż'
);
return strtr($text, $trans);
}
nazwa funkcji jest trochę myląca, bo wcale nie zamienia ona utf16 na utf8, ponieważ po jej działania co prawda wyświetlają się poprawnie polskie znaki, ale nadal każdy znak jest dwubajtowy - zamienia tylko niepoprawnie wyświetlające się znaki na ich polskie diakrytyczne odpowiedniki.
Teraz mój problem: chciałbym w takim tekście (już przetworzonym powyższą funkcją) znaleźć jakiś inny tekst, jednak funkcja strpos, oraz mb_strpos zwracają zawsze false, czy spowodowane jest to faktem ze każdy znak jest dwubajtowy?
Przy zastosowaniu funkcji mb_convert_encoding z kodowania utf-16 na utf-8 pojawiają się krzaki... Jak sobie z tym poradzić ?
pzdr Alois