Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Polskie czcionki PHP+MS SQL
hesus
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 24.03.2005

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


Witam,
Mam stronę kodowaną w iso-8859-2. Na nej formularz.
Formularz przekazuje dane tekstowe do skryptu, a skrypt do bazy MS SQL.
Na stronie wyświetlam zawartość bazy i zamiast polskich znaków mam krzaki.
Jak zachować zgodność kodowania w bazie i w formularzu?
Wcześniej robiłem takie rzeczy z MySQL i nie miałem takich problemów.
Proszę o help
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
Leezard
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 19.09.2004
Skąd: Uć

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


a sprawdz co masz w bazie, czy tez krzaczki czy normalne cos, ale podejrzewam ze krzaki. jesli tak to pewnie kodowanie w bazie jest nie takie. ustaw kodowanie, tylko nie wiem jak w mssql to leci winksmiley.jpg


--------------------
Nie rób nic na siłę - weź większy młotek ;)
Go to the top of the page
+Quote Post
hesus
post
Post #3





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 24.03.2005

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


Bazie krzaczki rzecz jasna. Tylko według mojego skromnego rozumku jeśli tekst jest w iso-8859-2, zapisuję go do bazy w formacie xxx a później znowu go odczytuję na stronę w iso-8859-2 to nie powinno być krzaków. No ale zakłdadając, że to kwestia ustawienia kodowania w bazie danych to... hmmm... ja też nie wiem, jak to leci smile.gif
Go to the top of the page
+Quote Post
No1B
post
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 10.11.2003

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


napisz jeszcze w jakiej "kolacji" (strona kodowa) masz baze


--------------------
Apache 2.0.53 | PHP 5.0.3 | MSSQL 2000 SP4
Go to the top of the page
+Quote Post
Seth
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Przenosze: php Poczatkujacy >> Bazy danych\ MS SQL Server
Go to the top of the page
+Quote Post
hesus
post
Post #6





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 24.03.2005

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


Polish_CI_AS
Go to the top of the page
+Quote Post
No1B
post
Post #7





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 10.11.2003

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


kodowanie jak najbardziej prawidlowe dla pl.

zmien na stronce wyswietlajacej na
Kod
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">


powinno byc ok. jesli nie to sprawdz w php.ini jakie masz ustawienia dla strony kodowej - tak sobie kombimuje

Pozdrawiam

edit: aha - sprobuj zmienic typy pol z char/varchar/text (8 bitowe -> 1250) and nchar/nvarchar/ntext (Unicode)

Ten post edytował No1B 25.03.2005, 14:37:37


--------------------
Apache 2.0.53 | PHP 5.0.3 | MSSQL 2000 SP4
Go to the top of the page
+Quote Post
hesus
post
Post #8





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 24.03.2005

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


W php.ini mam klasycznie iso-8859-2. Czy nie da się jakoś uniknąć stosowania windowsowego kodowania? Nikt go prawie nie poleca, jeśli chodzi o www.
Go to the top of the page
+Quote Post
No1B
post
Post #9





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 10.11.2003

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


dla kolacji POLISH_CI_AS strona kodowa jest 1250

  1. SELECT collationproperty('POLISH_CI_AS', 'CodePage')


sprobujemy cosik wykombinowac - moze jakas funkcyjka


--------------------
Apache 2.0.53 | PHP 5.0.3 | MSSQL 2000 SP4
Go to the top of the page
+Quote Post
hesus
post
Post #10





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 24.03.2005

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


Tych polskich kolacji (nie ma jak dobre, polskie żarcie) jest spora lista. Nie ma wśród nich żadnego odpowiednika iso-8859-2? W ostateczności użyję łindołsa, ale raczej go unikam.
Go to the top of the page
+Quote Post
No1B
post
Post #11





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 10.11.2003

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


wszystkie sa 1250. sam sprawdz:
  1. SET nocount ON declare @cp varchar(50)
  2. declare #cp_cursor cursor for
  3. SELECT name
  4. FROM ::fn_helpcollations() WHERE name LIKE '%polish%'
  5.  
  6. open #cp_cursor
  7. fetch next
  8. FROM #cp_cursor into @cp while @@fetch_status=0
  9. begin SELECT @cp,collationproperty(@cp, 'CodePage')
  10. fetch next
  11. FROM #cp_cursor into @cp end
  12. close #cp_cursor
  13. deallocate #cp_cursor
  14. SET nocount off


kodowanie 1250 nie jest straszne - ktos kiedys powiedzial ze 1250 jest be bo z ms i teraz wszyscy jada na 8859-2.
Btw - nie chce tutaj wywolywac zadnych kodowych wojen.

Pozdrawiam

Ten post edytował No1B 25.03.2005, 15:12:26


--------------------
Apache 2.0.53 | PHP 5.0.3 | MSSQL 2000 SP4
Go to the top of the page
+Quote Post
hesus
post
Post #12





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 24.03.2005

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


Nie no, za iso to ja też nikomu w mordę nie dam smile.gif ale zmieniłem wszędzie (strony, php.ini) na windows-1250 a krzaki jak były, tak są nadal.
Go to the top of the page
+Quote Post
No1B
post
Post #13





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 10.11.2003

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


a w przegladarce?

edit: a jak podgladasz zawartosc bazy jakims np. query analyzerem to tez masz krzaki?
jesli tak - to albo:
- nie masz w systemie zainstalowanych pl lokali albo
- masz takie dane w tablicy.

zrob tak
  1. CREATE TABLE a (
  2. k varchar(10) NOT NULL
  3. )
  4. go
  5.  
  6. INSERT
  7. INTO a SELECT 'ąąććńńłł'
  8. go
  9.  
  10. SELECT *
  11. FROM a


podejrzyj to zarowno poprzez www jak i qa

Pozdrawiam

Ten post edytował No1B 25.03.2005, 16:43:23


--------------------
Apache 2.0.53 | PHP 5.0.3 | MSSQL 2000 SP4
Go to the top of the page
+Quote Post
nixxon
post
Post #14





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 24.04.2007

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


witam

dolacze sie do dyskusji jako ze sam mam podobny problem. jak probuje wpisac przez strone www jakies dane z naszymi lokalnymi literkami to w bazie zapisuja sie krzaki i odczytuje przez www takze krzaczki, jesli recznie dodam do bazy rekord z polskimi literkami to takze wypisuje jakies krzaki...

uzywam kodowania iso8859-2

jakies pomysly questionmark.gif
Go to the top of the page
+Quote Post
Watcher01
post
Post #15





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 30.04.2007

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


Cytat(hesus @ 25.03.2005, 11:46:30 ) *
Witam,
Mam stronę kodowaną w iso-8859-2. Na nej formularz.
Formularz przekazuje dane tekstowe do skryptu, a skrypt do bazy MS SQL.
Na stronie wyświetlam zawartość bazy i zamiast polskich znaków mam krzaki.
Jak zachować zgodność kodowania w bazie i w formularzu?
Wcześniej robiłem takie rzeczy z MySQL i nie miałem takich problemów.
Proszę o help


Witam

Ja używam tutaj funkcji iconv
Jeśli wyrzucam na stronę coś z bazy, która jest kodowna w cp1250:
iconv(iconv_get_encoding($str),"ISO-8859-2",$str)
zamiast iconv_get_encoding($str) możesz po prostu wpisać cp1250 - gdy jesteś tego pewien.
Jeśli zapisuje coś do bazy to odwrotnie:
iconv("iso-8859-2,"cp1250",$str).

Ten post edytował Watcher01 1.05.2007, 14:32:28
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 18:37