Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] iconv
Forum PHP.pl > Forum > Przedszkole
microh
Witam!

Używam funkcji iconv do konwertowania łańcucha znaków do innego zestawu znaków.

Problem pojawia się gdy w łańcuchu występuje znak ’.

Powoduje on przerwanie konwertowania, a funkcja zwraca cały tekst przed podanym wyżej znakiem.

Próbowałem:

addslashes oraz : str_replace('’',' ',$string);

Bez rezultatów.

Co zrobić :/ sciana.gif worriedsmiley.gif
devnul
IMHO imposible. pokaż kod jakiego używasz do konwersji i jesli to możliwe przykładowe dane wejsciowe
microh
  1. <?php
  2. $str = " You can see shiny Cars And that's when you need me there With you I'll always share Because When the sun shines We’ll shine together Told you I'll be here forever That I'll always be your friend Took an oath Imma stick it out 'till the end Now that it's raining more than ever Know that we still have each other You can stand under 
    my Umbrella"
    ;
  3.  
  4.  
  5. $nowe = iconv('UTF-8', 'ISO-8859-2', $str);
  6.  
  7. echo $nowe;
  8. ?>


Zwraca: You can see shiny Cars And that's when you need me there With you I'll always share Because When the sun shines We

sciana.gif sciana.gif withstupidsmiley.gif
Lombi
Tak działa:

  1. <?php
  2. $str = " You can see shiny Cars And that's when you need me there With you I'll always share Because When the sun shines We'll shine together Told you I'll be here forever That I'll always be your friend Took an oath Imma stick it out 'till the end Now that it's raining more than ever Know that we still have each other You can stand under 
    my Umbrella"
    ;
  3.  
  4. $nowe = iconv('UTF-8', 'ISO-8859-2', $str);
  5. echo $nowe;
  6. ?>


Nie bardzo rozumiem problem.
devnul
może to głupie pytanie ale gdzie tu masz znaczniki z poza ascii ? więc po co ta konwersja?
microh
Ok, przepraszam, zły przykład.

W swoim kodzie mam dokładnie to:

Zobaczcie, czy u Was działa dry.gif:

  1. <?php
  2. $src = file_get_contents('http://en.sevenload.com/search/videos/rihanna/view/detail,1');
  3.  
  4. $lol = iconv('UTF-8', 'ISO-8859-2', $src);
  5.  
  6. echo $lol;
  7. ?>



A potem normalnie przeglądarką wejdźcie na: http://en.sevenload.com/search/videos/rihanna/view/detail,1

Ucina polowe kodu ze strony.
Lombi
W tym wypadku nie działa. Wstawili tam znak którego php nie toleruje smile.gif Nie wiem czy możesz cos na to poradzić.
Wyjaśnij mi po co zmieniasz na ISO-8859-2 bo w tym wypadku nie bardzo to rozumiem.
devnul
faktycznie wywala się
włączyłem error_reporting i co mi pokazało?
Kod
Notice: iconv() [function.iconv]: Detected an illegal character in input string

także chyba faktycznie są jakieś problemy z tym apostrofem

ale nadal nie rozumiem po co zmieniac kodowanie całej strony? jaki to ma sens?
microh
BTW. używam kodowania, żeby mieć polskie znaki.

Ale może źle robie ?
devnul
a utf nie wspiera - nie wiedziałem zawsze mi się wydawało że utf to ma wsparcie dla setek tysięcy krzaczków w tym polskich ogonków
microh
Może i tak, ale zawsze gdy pobierałem jakiś fragment trony z kodowaniem UTF, miałem krzaczki iconv pomagał, ale teraz zawiódł dry.gif
devnul
a nie prościej na stronie u siebie zrobić kodowanie utf?
a jak już się uparłes to zamieniaj ten apostrof na encje i nie będzie problemu
anonim1133
tak działa:
  1. <?php
  2. $src = file_get_contents('http://en.sevenload.com/search/videos/rihanna/view/detail,1');
  3. $src = htmlspecialchars($src);
  4. $lol = iconv('UTF-8', 'ISO-8859-2', $src);
  5. $lol = htmlspecialchars_decode($src);
  6. echo $lol;
  7. ?>
Kicok
Spróbuj:
  1. <?php
  2. $str = iconv( 'UTF-8', 'ISO-8859-2//TRANSLIT', $str );
  3. ?>


albo:
  1. <?php
  2. $str = iconv( 'UTF-8', 'ISO-8849-2//IGNORE', $str );
  3. ?>



Więcej informacji w komentarzach: http://pl2.php.net/manual/pl/function.iconv.php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.