Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mysql i utf-8 raz jeszcze
miki555
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.03.2006

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


Witam wszytskich. Na wstępie zaznaczam że nie dam spokoju dopóki ktoś mi nie pomoże rozwiązać tego problemu. Wiem że temat rzeka i że jak wpisze hasło kodowanie polskich znaków to wywala pełno na ten temat. Tylko że jak dotad a szukam już od dwóch dni, nie znalazłem sensownego rozwiązania.
Sytuacja ma się następująco:
1. Na pokładzie mam apache 2.0.55 php5 i mysql 5.0.16. W bazie domyślne kodowanie jest latin1 oraz metodę porównań latin1_swedish_ci
  1. SHOW VARIABLES LIKE 'character_set%';
  2. +--------------------------+----------------------------+
  3. | Variable_name | Value |
  4. +--------------------------+----------------------------+
  5. | character_set_client | latin1 |
  6. | character_set_connection | latin1 |
  7. | character_set_database | latin1 |
  8. | character_set_results | latin1 |
  9. | character_set_server | latin1 |
  10. | character_set_system | utf8 |
  11. | character_sets_dir | /usr/share/mysql/charsets/ |
  12. +--------------------------+----------------------------+
  13. SHOW VARIABLES LIKE 'collation%';
  14. +----------------------+-------------------+
  15. | Variable_name | Value |
  16. +----------------------+-------------------+
  17. | collation_connection | latin1_swedish_ci |
  18. | collation_database | latin1_swedish_ci |
  19. | collation_server | latin1_swedish_ci |
  20. +----------------------+-------------------+

Domyślnie dane w bazie wyświetlają sie poprawnie, lecz po przestawiniu php i apache na kodowanie utf dane pobierane z bazy wyświetlają znaki '?' w miejsach polskich znaków. Próbowałem już chyba wszytskiego:

Wpisywałem w mysql:
  1. SET CHARACTER SET utf8;
  2. SET NAMES utf8;

Lecz to powodowowało ze miałem nawet krzaczki w bazie. Dodam, że dane wklejam prosto z notatnika, wiec chyba żadne konwersje nie są potrzbne.
Probowałem ustawić domyślne kodowanie utf na tabelach np.
  1. CREATE TABLE kierunki
  2. (
  3. id_kierunek INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  4. kod VARCHAR(10) NOT NULL,
  5. nazwa VARCHAR(50) NOT NULL
  6. )ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

Też nic nie dało
Przy polączeniach bazą wykonywałem
  1. mysql_query('SET NAMES utf8');

Co jedynie spowodowało, że krzaczki zamieniły sie w inne krzaczki.
Przedstawiłem pokrótce co mniejwiecej próbowałem, ale żadanego eftku nie osiągnełem. Co robie źle co jest nie tak. Czy potrzebne są jakies konwersje skoro wkelejam tabele wraz z danymi z notatnika? Proszę o nie zamykanie tego tematu, ale na fachową pomoc. Z góry dziekuję
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@miki555 Zrobil bym to w nastepujacy sposob.

Zrzut tabel pozniej konwersja do utf-8 tak zeby kodowanie w bazie bylo poprawne i zapisane krzaczki tez. Nastepnie podczas zapytania wymusic kodowanie dla sesji, klienta. (SET)

Mam nadzieje ze CI to pomoze, jak nie to pisz na forum.
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 16:59