Polskie znaki PHP vs MSSQL 2005 |
Polskie znaki PHP vs MSSQL 2005 |
3.09.2008, 19:51:17
Post
#1
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 1 Dołączył: 13.05.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
Witam, kombinowałem dziś na wszystkie możliwe sposoby aby uzyskać polskie znaki na stronie WWW i za kazdym razem mam "??", jedynie "ó" mam poprawnie wyświetlone. Podłączam się do bazy CDN Optima i tam jest ustawione collation na POLISH_CI_AS czyli jak na nasze ok, a pola bazy danych są jako NVARCHAR. Strona WWW stoi na serverze FreeBSD, kodowanie strony jest w UTF-8 ale mogę ją zmienić na dowolnie inny format tylko pytanie na jaki? Kombinowałem z iconv ale bez rezultatu. Zaaktualizowałem PHP do wersji 5.2.6 ale nadal lipa
Doradźcie coś! Heh - polskie znaki się pojawiły ale gdy server stoi na Windowsie, ten sam plik PHP umieszczony na serverze FreeBSD i brak polskich znaków, no to teraz to już nic nie kumam Czy FreeTDS poradzi sobie z polskimi znakami - ktoś tego próbował? Ten post edytował termin 3.09.2008, 21:20:36 |
|
|
4.09.2008, 06:25:10
Post
#2
|
|
Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%) |
Poradzi, ja próbowałem A w jakim kodowaniu serwer www wypuszcza dane?
-------------------- Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..." Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL" |
|
|
4.09.2008, 11:39:06
Post
#3
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 1 Dołączył: 13.05.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
w UTF-8
masz moze jakieś doświadczenie z tym FreeTDS, bo ja tylko konfigurowałem freetds.conf, a wyczytałem ze trzeba chyba jeszcze odbc.ini chociaż w freetds.conf ustawialem client charset = UTF-8 ale nie wiem czy to sie tyczy jak dane mają zostać przekonwertowane czy tu ustawia sie jakie baza ma kodowanie. |
|
|
4.09.2008, 22:16:30
Post
#4
|
|
Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%) |
Hmm, a spróbuj przy wyciąganiu danych użyć PDO Swoją drogą PHP nie wspiera unikodu niestety, więc jak wyciągniesz dane z bazy to spróbuj użyć tego, by sprawdzić kodowanie danych
-------------------- Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..." Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL" |
|
|
5.09.2008, 07:24:14
Post
#5
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 1 Dołączył: 13.05.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
w jakim kodowaniu serwer www wypuszcza dane?
wypuszcza chodzi Ci o w jakim kodowaniu je pobiera z bazy danych? To jest tak, ze ja zrobię bazę pośrednią pomiędzy CDN z bazą MS SQL a stroną WWW z bazą MySQL. Czyli pobieram dane z MS SQL-a i przerzucam je do MySQL-a, po drodze robiąc konwersje polskich znaków. O ile na windowsie polskie znaki są OK o tyle na FreeBSD nie ma. Oczywiście używam iconv aby je przekonwertować CP1250 -> UTF-8. Jeżeli na FreeBSD uda mi się uzyskać PL znaki to zapisując je do bazy MySQL już nie będzie problemu. W najgorszym wypadku jeżeli nie uda mi sie tych znaków uzyskać to przerzut danych pomiędzy bazą pośrednią zrobię na windowsie. Może teraz bardziej rozjaśniłem sprawę o co mi chodzi. Nie wnikamy do czego baza pośrednia, załóżmy ze tak ma być. |
|
|
5.09.2008, 17:36:43
Post
#6
|
|
Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%) |
Eh, nie zrozumiałeś mnie Miałem na myśli jakie kodowanie ma ustawiony apache? A jakie masz kodowania ustawione we freetds ? Poza tym to jest imho durne rozwiązanie
-------------------- Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..." Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL" |
|
|
9.09.2008, 08:38:29
Post
#7
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 1 Dołączył: 13.05.2003 Skąd: Wrocław Ostrzeżenie: (0%) |
Dzięki "zabłąkany" za pomoc, trzeba było ustawić mssql.charset = cp1250 w php.ini i śmiga, ustwienie tego przez iniset nic nie daje.
|
|
|
1.04.2023, 08:44:50
Post
#8
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 18.06.2016 Ostrzeżenie: (0%) |
Mam podobny problem. Łączę się przez w php przez PDO do serwera SQL za pośrednictem FreeTDS
Problem z polskimi znakami rozwiązałem dopisując do pliku freetds.ini kod "client charset = UTF-8" Teraz jak pobieram dane to wszystko ładnie się wyświetla ale są wyjątki. Jeżeli w pobieranym polu jest fraza "test 2ś" to wywala mi dla tego 2ś znak pytajnika. Ktoś wie o co chodzi? Edit: rozwiązałem problem ustawiając kodowanie w pliku freetds.ini na windows-1250 a potem w pliku php dla pobranego wyniku z zapytania zastosowałem konwersje komendą:
Ten post edytował karcheus 1.04.2023, 08:45:34 |
|
|
Wersja Lo-Fi | Aktualny czas: 24.09.2024 - 10:57 |