Datenbank convert von latin zu UTF

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
kira12
Beiträge: 121
Registriert: 25.06.2010 12:03:04
Kontaktdaten:

Datenbank convert von latin zu UTF

Beitrag von kira12 » 01.07.2021 00:01:10

Hallo Leute,

ich betreibe einen Webshop mit Datenbank die aus gemischten Tabellen besteht, entweder latin oder UTF8. Im Shop werden Umlaute korrekt angezeigt, in der Datenbank stehen aber die Umlaute falsch. Ich habe schon versucht mit ALTER TABLE table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; den Typ zu änderm aber der Eintrag in der Datenbank mit den falsch codierten Umlauten bleibt gleich, wie kann ich das ändern ohne alles von Hand anzupassen?

Gruß ré

fischig
Beiträge: 3598
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: Datenbank convert von latin zu UTF

Beitrag von fischig » 12.07.2021 20:02:13

Da würde ich doch erstmal die verwendete „Datenbank“, was immer das sein mag, bekannt geben.

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: Datenbank convert von latin zu UTF

Beitrag von wanne » 13.07.2021 13:30:49

Es kann immer irgend welche Details geben aber im allgemeinen ist das die einzig sinnvolle Variante.
der Eintrag in der Datenbank mit den falsch codierten Umlauten bleibt gleich
Du kannst für neue Einträge eine passende Codierung geben.
Aber wenn da in der latin1-DB ein i statt einem ї steht kannst du im nachhinein wenig machen: Woher soll ein Tool am Ende wissen, ob nicht einfach ein i stehen sollte?
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
chroiss
Beiträge: 332
Registriert: 29.10.2004 09:29:43
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)

Re: Datenbank convert von latin zu UTF

Beitrag von chroiss » 02.08.2021 23:59:57

Hi,

Code: Alles auswählen

mysqldump -uUSER -p --default-character-set=latin1 --skip-set-charset DB_NAME > DB_NAME.sql
iconv -f iso-8859-1 -t utf8 DB_NAME.sql | sed -e 's/latin1/utf8/g' > DB_NAME_NEU.sql
mysql -uUSER -p
create database DB_NAME_NEU charset=utf8;
mysql -uUSER -p --default-character-set=utf8  DB_NAME_NEU < DB_NAME_NEU.sql
Hat bei ner Redmine DB gut funktioniert.

Gruss
Chroiss
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.

Antworten