Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kodowanie raz jeszcze
Forum PHP.pl > Forum > Bazy danych > MySQL
altruista
SRODOWISKO:
WAMP5 Version 1.6.1, windows XP SP2
Apache 1.3.x.
php 5.x.x
MySQL 4.x.x


USTAWIENIA
w php.ini:
default_charset = "iso-8859-2"

w phpmyadmin:
- glowne:
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8) - bez mozliwosci zmiany
System porównań dla połączenia MySQL: ustawione na latin2_general_ci
- dla bazy danych:
System porównań dla połączenia MySQL: ustawione na latin2_general_ci
- dla tabeli:
Metoda porównywania napisów: ustawione na latin2_general_ci

w skrypcie uzywanym do operacji na bazie danych:
  1. <?php
  2. $db->query("set charset latin2");
  3. ?>


PROBLEM:
prosta operacja wstawienia do bazy:
  1. <?php
  2. $db->query("INSERT INTO slowa (slowo) VALUES ('ęółśążźćń')");
  3. ?>

powoduje wpis w postaci:

ę󳜹żŸćń

nawet w przegladarce wyswietlajacej w ISO-8859-2
czyli nie sa rozpoznawane wszystkie plitery.....

bylbym wdzieczny o pomoc w razwiazaniu problemu...
Sh4dow
a czy pole w tablicy takze ma kodowanie latin2 czy moze utf ?
altruista
a bo ja wiem :/ gdzie to sprawdzic?
System kodowania znaków dla MySQL jest ustawiony na utf.. ale nie mozna tego zmienic z poziomu phpmyadmin

probowalem skladni:
  1. <?php
  2. ALTER TABLE t1 CHANGE c1 c1 BLOB;
  3.  
  4. ALTER TABLE t1 CHANGE c1 c1 VARCHAR(255) CHARACTER SET latin2;
  5. ?>


ale tez nie zmienilo to wyswietlania


kolejna ciekawostka jaka zauwzylem jest:

Variable_name - Value
character_set_client - utf8
character_set_connection - latin2
character_set_database - latin1
character_set_filesystem - binary
character_set_results - utf8
character_set_server - latin2
character_set_system - utf8
character_sets_dir - c:\wamp\mysql\share\charset

rozne "rzeczy" maja rozne kodowania, to pewnie sprawia problem... tylko jak to poustawiac na latin2?


co ciekawe mimo ze wczesniej ustawialem na latin2 to funckja mysql_client_encoding() pokazuje mi latin1 :/

pomozcie koledzy bo Nowego Roku nie doczekam
Sh4dow
wiekszosc tych rzeczy ustawia sie w pliku my.ini ( lub my.cnf pod linuxem) i tam sa zmienne od praktycznie wszystkiego. Poszukaj w manualu albo w google. Możesz skozystac z programy MySQL Administrator jest do sciagniecia ze strony mysql'a za darmo, poproboj.
altruista
juz w roznych miejscach probowalem wpisywac kodowanie latin2, ale zmienne pozostaly niezmienione (zmienne niezmienne - ciekawe winksmiley.jpg )

jednak zauwazylem jedna rzecz...


znaczki naprawiaja sie w momencie gdy zmienie kodowanie po stronie przegladarki (w jej ustawieniach widoku) na windows1250 exclamation.gif

i znow zglupialem... przeciez nigdzie nie ustawialem takiego kodowania...


nie chce stosowac tego kodowania... a juz zbraklo mi pomyslow na naprawe...


czy to jest naprawde taka ciezka sprawa?
mysz
A Twój edytor w którym napisałeś kod dodający pliterki, w jakim kodowaniu zapisuje plik?
altruista
i wlasnie w tym byl problem!!. poprawilem kodowanie w edytorze i wszystko dziala!!

bardzo dziekuje wszystkim za pomoc!



hmm a jak przelaczyc "typ" pliku php w php Desiner 2007? w ustawieniach sa tylko opcje "format types (windows, unix mac) oraz "encoding types (ansi i rozne utfy) a latin2 brak...


co prawda nie znam za dobrze php Desinera (uzywam zend studio i tam dalo sie przelaczyc bez problemow kodowanie), ale brak mozliwosci wybrania kodowania znakow wydaje sie jakies podchwytliwe :/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.