Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana kodowania danych na UTF8 z poziomu MySQLa?
Forum PHP.pl > Forum > Bazy danych > MySQL
tryme
Witam Serdecznie,

Muszę zmienić kodowanie danych w tabelach (kolumna text, kodowanie latin1_swedish_ci) na UTF-8 (text, utf8_general_ci). Mam wiele baz z tysiącami rekordów w tabelach. Chciałbym zrobić to najlepiej za pomocą poleceń MySQLa niż skryptem PHP a tym bardziej dumpowaniem baz i konwertowaniem znaków za pomocą iconv.

Próbuję poniższych komend

  1. ALTER TABLE tabela CHARACTER SET utf8;
  2. ALTER TABLE tabela CHANGE kolumna kolumna BLOB;
  3. ALTER TABLE tabela CHANGE kolumna kolumna TEXT CHARACTER SET utf8;


lecz po ich wykonaniu dane w tabeli są ucinane od miejsca, gdzie powinien występować polski znak (np. dla danych KOŃ JEST FAJNY zmieni na KO).

Próbuję również takich komend

  1. ALTER DATABASE baza CHARACTER SET utf8 COLLATE utf8_general_ci;
  2. ALTER TABLE baza.dane CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;


lecz tutaj kodowanie się nie zmienia.

Co robię źle?

Czy da się to w ogóle wykonać taką operację z poziomu MySQLa?

Problem udało się chyba rozwiązać samemu yahoo.gif

Wpierw zmiana z latin1 na latin2 a potem utf8.

  1. ALTER TABLE tabela CHANGE kolumna kolumna BLOB;
  2. ALTER TABLE tabela CHANGE kolumna kolumna TEXT CHARACTER SET latin2;
  3. ALTER TABLE tabela CHANGE kolumna kolumna TEXT CHARACTER SET utf8;


Problemów ciąg dalszy.

Jak zmienić bezboleśnie znaki specjalne Latin-1 wyglądające mniej wiecej tak: &# 169; (oczywiście bez spacji w środku)?
Prezi2907
html_entity_decode() powinno załatwic sprawę ale to już po stronie PHP a nie samej bazy smile.gif
tryme
Dziękuję za informację.

Robię tak:

  1. $dane = html_entity_decode($pytanie[0], ENT_QUOTES, "UTF-8");
  2. mysql_query("UPDATE tabela SET dane=$dane WHERE id=...");



Czy powinienem zwrócić uwaga na jakieś wyjątki lub sposób updatowania do bazy mysqla, aby zabezpieczyć się przed częściową utratą danych?
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.