![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 190 Pomógł: 1 Dołączył: 20.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Musze zamienic kodowanie tekstu z UTF-8 na ISO-8859-2 przed zapisem do bazy. Problem w tym, ze ten tekst czesto zawiera nieobslugiwane cudzyslowy skopiowane z Worda, o takie: Cytat „ ” Jak uzywam do konwersji mbstring to zamienia te cudzyslowy na znaki zapytania, a jak uzyje iconv to mi wywali blad ze tekst zawiera nieobslugiwane znaki. Probowalem zamienic te cudzyslowy na zwykle (ktore moge wklepac z klawiatury) za pomoca str_replace, ale Eclipse mi nie chce w ogole zapisac pliku php bo tych znakow nie moze zapisac w kodowaniu ISO. Co z tym zrobic? Jak to zamienic na zwykly cudzyslow? Moge ostatecznie kazac mbstring je usunac za pomoca Kod ini_set('mbstring.substitute_character', 'none'); ale to nie jest dobre wyjscie. Ten post edytował marcini82 19.01.2007, 08:59:48 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 5.11.2006 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Takie coś znalazłem w funkcjach szablonowych w EdHTML.
Ale te funkcje tylko zmieniają kodowanie jedynie z win1250 i iso8859. $string = strtr($string, "\xA1\xA6\xAC\xB1\xB6\xBC", "\xA5\x8C\x8F\xB9\x9C\x9F"); //ISO8859-2 -> WIN-1250 lub $string = strtr($string, "\xA5\x8C\x8F\xB9\x9C\x9F", "\xA1\xA6\xAC\xB1\xB6\xBC"); //WIN-1250 -> ISO 88592 Może to cię jakoś naprowadzi:) |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 190 Pomógł: 1 Dołączył: 20.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dzieki, naprowadzilo mnie o tyle, ze jesli znalbym taki kod w stylu
Cytat \xf3 dla tych "zlych" cudzyslowow i dla zwyklego, to moglbym to zamienic. Tylko jak odczytac taki kod dla wybranego znaku? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 472 Pomógł: 7 Dołączył: 7.12.2005 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Tutaj są entitiesy HTML'a oparte o powyższy zapis:
http://www.w3schools.com/tags/ref_entities.asp To co potrzebujesz to najprawdopodobniej: left double quotation mark i right double quotation mark Tutaj szczegółowo: http://www.fileformat.info/info/unicode/char/201c/index.htm Ten post edytował cadavre 19.01.2007, 16:51:48 -------------------- Silesian PHP User Group - www.spug.pl
Symfony2, OAuth2, budowanie API - masz pytania? Pisz! |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 190 Pomógł: 1 Dołączył: 20.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Poszukiwane przeze mnie znaki to:
http://www.fileformat.info/info/unicode/char/201e/index.htm http://www.fileformat.info/info/unicode/char/201d/index.htm Chcialbym je zamienic na: http://www.fileformat.info/info/unicode/char/0022/index.htm Niestety, nie udaje mi sie ![]() Probowalem tak dla pierwszego znaku: Kod $zamienniki = Array('\xE2\x80\x9E' => '\x22'); $input = strtr($input, $zamienniki); albo tak: Kod $zamienniki = Array('\x201e' => '\x22'); $input = strtr($input, $zamienniki) Wzorowalem sie na przykladzie ghasha i na tym: http://php5.pl/php/konwersja_systemu_kodow..._win1250_i_utf8 Nie dziala. W jakiej postaci mam podac kody znakow, aby zadzialalo? EDIT: Juz wiem: trzeba bylo uzyc podwojnych cudzyslowow: Kod $zamienniki = Array("\xE2\x80\x9E" => "\x22");
Ten post edytował marcini82 25.01.2007, 12:24:12 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 08:26 |