2011-07-13 14 views
5

Czy możesz mi pomóc z problemem writtent poniżej:Excel-reader Problem UTF

Dostaję błędu iconv() [function.iconv]: Wykryto niedozwolony znak w ciągu wejściowego kiedy czytam xls plik i konwersję do csv. Używam php-excel-library i ja dostać ten błąd w wierszu:

case 'iconv' :  
    $result = iconv('UTF-16LE', $this->_defaultEncoding, $string); 
break; 

Does enybody wiedzieć, jak to naprawić?

Odpowiedz

2

Oznacza to, że w twoim pliku jest sekwencja bitów, której nie można przypisać do znaku, b/c jest bez znaczenia i dlatego nie można go przekonwertować na inne kodowanie.

Użyj flagi // IGNORE jako opisanej here.

+0

Próbuję też tego bez powodzenia – Gasper

+2

Jeśli to ci nie pomogło, dlaczego oznaczyłeś to jako odpowiedź? – Tareq

0

Upewnij się, że plik jest zakodowany w formacie UTF-16LE, ponieważ próba importu niewłaściwego formatu spowoduje wygenerowanie tego rodzaju błędów.

Wykorzystanie PHP 5.3 lub wyższa, jak PHP < 5.3 nie obsługuje UTF-16 kodowanie (sprawdź notatki tutaj: link)

Zamiast ignorować może chcesz spróbować // translit mieć iconv przekształcić charakter taki, który jest zgodny z domyślnym kodowaniem (np. przekonwertuj MS "fantazyjne cytaty" do zwykłych pojedynczych/podwójnych cudzysłowów w ascii)

+0

Mam zainstalowany php 5.3.8 i próbowałem // TRANSLIT, i to nie działa – kukipei

+0

Czy udało się zidentyfikować obrażającą postać? Spróbuj debugowania, aby dowiedzieć się, która linia pliku jest włączona i zawęzić, która postać jest zła. To był mój pierwszy krok w ustaleniu tego. Jeśli znajdziesz obrażającą (e) postać (e), być może uda ci się wyśledzić problem z kodowaniem. –