Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] iconv, UTF -> ISO / Błąd
microh
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

Ostrzeżenie: (10%)
X----


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ć :/ (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)

Ten post edytował microh 5.01.2008, 20:21:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
devnul
post
Post #2





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


IMHO imposible. pokaż kod jakiego używasz do konwersji i jesli to możliwe przykładowe dane wejsciowe
Go to the top of the page
+Quote Post
microh
post
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

Ostrzeżenie: (10%)
X----


  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

(IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) (IMG:http://forum.php.pl/style_emoticons/default/withstupidsmiley.gif)
Go to the top of the page
+Quote Post
Lombi
post
Post #4





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
devnul
post
Post #5





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


może to głupie pytanie ale gdzie tu masz znaczniki z poza ascii ? więc po co ta konwersja?
Go to the top of the page
+Quote Post
microh
post
Post #6





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

Ostrzeżenie: (10%)
X----


Ok, przepraszam, zły przykład.

W swoim kodzie mam dokładnie to:

Zobaczcie, czy u Was działa (IMG:http://forum.php.pl/style_emoticons/default/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.

Ten post edytował microh 5.01.2008, 21:15:55
Go to the top of the page
+Quote Post
Lombi
post
Post #7





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


W tym wypadku nie działa. Wstawili tam znak którego php nie toleruje (IMG:http://forum.php.pl/style_emoticons/default/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.
Go to the top of the page
+Quote Post
devnul
post
Post #8





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
microh
post
Post #9





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

Ostrzeżenie: (10%)
X----


BTW. używam kodowania, żeby mieć polskie znaki.

Ale może źle robie ?
Go to the top of the page
+Quote Post
devnul
post
Post #10





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
microh
post
Post #11





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

Ostrzeżenie: (10%)
X----


Może i tak, ale zawsze gdy pobierałem jakiś fragment trony z kodowaniem UTF, miałem krzaczki iconv pomagał, ale teraz zawiódł (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post
devnul
post
Post #12





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
anonim1133
post
Post #13





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 22.07.2006
Skąd: Legnica

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
Kicok
post
Post #14





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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

Ten post edytował Kicok 6.01.2008, 12:14:36
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 06:35