Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Konwersja kodowania znakow, iconv ? mb_string ? czy wlasna tablica
Bastion
post
Post #1





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


Witam,

Mam pytanie, przypuscmy ze chce konwertowac ciagi tekstowe kodowaniem
z jednego dowolnego systemu na inny - to ktore rozszerzenie nadaje sie do tego
obecnie najlepiej pod wzgledem szybkosci ale i dostepnosci ? iconv czy mb_string ?
Czy nie lepszym rozwiazaniem byloby stworzenie wlasnych tablic stron kodowych i
na ich podstawie dokonywac konwersji ? (glownie dotyczy stron kodowych obslugujacych
polskie znaki czyli iso-8859-2 , wincp-1250 oraz utf-8)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Największą wadą programistów jest nadmierna skłonność do pisania wszystkiego od początku.
A przecież często sa gotowe rozwiązania.

Owszem własna tablica jest rozwiązaniem idealnym na serwerze, na którym nie ma zainstalowanego iconva i mb_stringa. Ale to niezwykła żadkość. Biblioteki te są zawsze (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Jestem za iconvem.
Go to the top of the page
+Quote Post
Bastion
post
Post #3





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


racja, ale przesledz taki scenraiusz , ze ktos nie bedzie mial iconva - czyli wypada umiescic wlasna "awaryjna" tablice. Wiec jesli juz to po co miec pare rozwiazan jak pierwsze sprawdzi sie w kazdym przypadku i konfiguracji (tylko polskie ogonki) . ale skoro twierdzisz ze iconv jest w wiekszosci konfiguracji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) to wykorzystam wlasnie jego.
Go to the top of the page
+Quote Post
php programmer
post
Post #4





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


Znalazłem ostatnio w sieci fajną funkcję konwerująca
zaraz ją podepnę.

  1. <?php
  2.  
  3.   define('UTF8_TO_ISO88592', 1);
  4.   define('ISO88592_TO_UTF8', 2);
  5.   define('WIN1250_TO_UTF8', 3);
  6.   define('UTF8_TO_WIN1250', 4);
  7.   define('ISO88592_TO_WIN1250', 5);
  8.   define('WIN1250_TO_ISO88592', 6);
  9.  
  10.   function plCharset($string, $type = WIN1250_TO_ISO88592) {
  11.  
  12.     $win2utf = array(
  13.       "\xb9" => "\xc4\x85", "\xa5" => "\xc4\x84",
  14.       "\xe6" => "\xc4\x87", "\xc6" => "\xc4\x86",
  15.       "\xea" => "\xc4\x99", "\xca" => "\xc4\x98",
  16.       "\xb3" => "\xc5\x82", "\xa3" => "\xc5\x81",
  17.       "\xf3" => "\xc3\xb3", "\xd3" => "\xc3\x93",
  18.       "\x9c" => "\xc5\x9b", "\x8c" => "\xc5\x9a",
  19.       "\xbf" => "\xc5\xbc", "\x8f" => "\xc5\xbb",
  20.       "\x9f" => "\xc5\xba", "\xaf" => "\xc5\xb9",
  21.       "\xf1" => "\xc5\x84", "\xd1" => "\xc5\x83"
  22.     );
  23.     $iso2utf = array(
  24.       "\xb1" => "\xc4\x85", "\xa1" => "\xc4\x84",
  25.       "\xe6" => "\xc4\x87", "\xc6" => "\xc4\x86",
  26.       "\xea" => "\xc4\x99", "\xca" => "\xc4\x98",
  27.       "\xb3" => "\xc5\x82", "\xa3" => "\xc5\x81",
  28.       "\xf3" => "\xc3\xb3", "\xd3" => "\xc3\x93",
  29.       "\xb6" => "\xc5\x9b", "\xa6" => "\xc5\x9a",
  30.       "\xbc" => "\xc5\xba", "\xac" => "\xc5\xb9",
  31.       "\xbf" => "\xc5\xbc", "\xaf" => "\xc5\xbb",
  32.       "\xf1" => "\xc5\x84", "\xd1" => "\xc5\x83"
  33.     );
  34.  
  35.     if ($type == ISO88592_TO_UTF8)
  36.       return strtr($string, $iso2utf);
  37.     if ($type == UTF8_TO_ISO88592)
  38.       return strtr($string, array_flip($iso2utf));
  39.     if ($type == WIN1250_TO_UTF8)
  40.       return strtr($string, $win2utf);
  41.     if ($type == UTF8_TO_WIN1250)
  42.       return strtr($string, array_flip($win2utf));
  43.     if ($type == ISO88592_TO_WIN1250)
  44.       return strtr($string, "\xa1\xa6\xac\xb1\xb6\xbc",
  45.         "\xa5\x8c\x8f\xb9\x9c\x9f");
  46.     if ($type == WIN1250_TO_ISO88592)
  47.       return strtr($string, "\xa5\x8c\x8f\xb9\x9c\x9f",
  48.         "\xa1\xa6\xac\xb1\xb6\xbc");
  49.   }
  50.  
  51. ?>

u mnie działa bez zarzutu, wystarczy includować i nie przeba sie bawić z iconvie
w

Ten post edytował php programmer 24.02.2006, 10:40:29
Go to the top of the page
+Quote Post
Bastion
post
Post #5





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


ja bym powiedzial ze uzylem wlasnie iconva by sie nie "bawic", razem z class5.babel dziala doskonale (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
son
post
Post #6





Grupa: Zarejestrowani
Postów: 210
Pomógł: 0
Dołączył: 31.01.2004
Skąd: Kraków

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


Czy tą funkcję można wykorzystać do ucieczki od polskich znaków? Bawiłem się z tą funcją iconv ale nie wyszło.
Go to the top of the page
+Quote Post
emp
post
Post #7





Grupa: Zarejestrowani
Postów: 195
Pomógł: 14
Dołączył: 12.01.2006
Skąd: Gotham City

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


uzwajac iconv do konwersji tresci listu z utf na iso wystepowaly bledy np ucinal mi skonwertowana tresc takze ja tego uzywac nie mam zamiaru...

imap_mime_header_decode do odkodowania naglowkow tez sie sypie... jezeli chodzi o php to wiele rzeczy okazuje sie ze trzeba zrobic samemu jak chcesz byc pewny ze to bedzie dobrze dzialac.. dobija mnie ten jezyk i nie udokumentowane, kiepsko dzialajace biblioteki oraz funkcje
Go to the top of the page
+Quote Post
mariuszn3
post
Post #8





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

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


Jakie są różnice pomiędzy iconv a mbstring? Dlaczego mike_mech wybrałbys iconv? Taka lista pros and cons by mi się przydała. Po prostu jestem ciekaw, dopiero teraz zauważyłem, że są dwie biblioteki w php o tej samej funkcjonalnosci. Sam do tej pory korzystam z mb_string. Z góry dzięki za info.
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: 23.08.2025 - 19:27