View previous topic :: View next topic |
Author |
Message |
kutte128 Apprentice
Joined: 18 May 2004 Posts: 173
|
Posted: Thu Nov 30, 2006 10:37 am Post subject: mysql 4.1.21 + utf-8 standard + iso-db [solved] |
|
|
hallo,
ich habe ein kleines problem mit mysql 4.1.21.
ich habe meinen server komplett umgestellt auf utf-8 (nach anleitung).
soweit funktioniert auch alles ganz gut.
jetzt habe ich das problem, das ich daten die in iso-8859-1 vorliegen in eine datenbank einspielen will.
diese eine datenbank soll als iso laufen.
ich habe also die db angelegt mit
Code: |
CREATE DATABASE `isodatabase` charset latin1 collate latin1_german1_ci;
|
wenn ich allerdings jetzt die daten in die tabellen einlese, sind sämtliche umlaute als ? drin.
kann man mysql als utf-8 standard laufenlassen und trotzdem einige iso-db's nutzen ?
wenn ja, wie?
grüße,
kutte128
[edit]
i changed my server from iso-85591 to utf-8 using the gentoo-wiki.
now i have a problem importing iso-8559-1-data in a latin1 database on an mysqlserverrunning with utf-8 standard.
all umlauts are displayed as ?.
i created the databsase like this:
Code: |
CREATE DATABASE `isodatabase` charset latin1 collate latin1_german1_ci;
|
can i use mysql with utf-8 standard and use some iso-databases at the same time?
best regards,
kutte128
[/edit]
Last edited by kutte128 on Fri Dec 01, 2006 12:58 pm; edited 1 time in total |
|
Back to top |
|
|
frilled Retired Dev
Joined: 15 Mar 2004 Posts: 386 Location: Atlantis, inner city ring
|
Posted: Thu Nov 30, 2006 10:06 pm Post subject: |
|
|
Am einfachsten schreibst Du die Daten per 'mysqldump' (phpmyadmin o.ä. kann das auch) raus und konvertierst sie von iso-latin nach utf-8 mit
'iconv -f iso-8859-1 -t utf-8 FROMFILE > DESTFILE'
(aus dem Kopf, bitten eben Sanity Check machen) und liest DESTFILE dann wieder ein. _________________ "Failure is not an option!"
"Sir, we are out of further options." |
|
Back to top |
|
|
kutte128 Apprentice
Joined: 18 May 2004 Posts: 173
|
Posted: Fri Dec 01, 2006 8:24 am Post subject: |
|
|
moin moin,
das umwandeln von mysqldump o.ä. ist ja kein problem.
das problem ist, das viele scripte noch als iso hinterlegt sind und die utf-8-daten aus der db einfach falsch angezeigt werden.
eine möglichkeit die ich gefunden habe ist:
Code: |
mysql_query("SET CHARACTER SET latin1");
|
nach dem konnekten.
dann werden die daten korrekt ausgegeben
welchen sinn macht denn das
Code: |
CREATE DATABASE `isodatabase` charset latin1
|
wenn die inhalte trotzdem utf-8 sind?
oder habe ich da einen denkfehler drin ? |
|
Back to top |
|
|
frilled Retired Dev
Joined: 15 Mar 2004 Posts: 386 Location: Atlantis, inner city ring
|
Posted: Fri Dec 01, 2006 12:17 pm Post subject: |
|
|
Du hättest die 5er auch mit dem USE-Flag "-latin1" emergen können, dann wäre der Default Latin1 geblieben (habe ich auch erst hinterher gesehen, bin aber ganz froh drum .-) ...
Das Anlegen mit latin1 macht m.E. nur Sinn, wenn Du auch Daten im Latin1-Format hast. Wenn Du also jetzt UTF-8 Daten hast, würde ich sie erst wieder in Latin wandeln und dann in die latin1-db pumpen ^_^.
Das mit den Scripten ist in der Tat nervig; bei den meisten 3rd-Party Apps aber mittlerweile auch nicht mehr so schlimm. Mantis und phpBB brauchten ein bisschen Handarbeit, aber bei den aktuellen Versionen geht es recht zügig.
Der wichtigste Trick ist oft, dass die Scripte versuchen, selbst einen Charset-Header zu senden, und der ist dann halt latin1. Oft reicht das Umsetzen auf UTF-8. Kann ich allerdings für den Betrieb auf einer im Internet zugänglichen Site nicht empfehlen, weil diese Spielchen schnell Tore für Attacken öffnen, wenn die Applikation an sicht nicht UTF-8-aware ist.
So ... äh, was war jetzt die Frage? (o_O) _________________ "Failure is not an option!"
"Sir, we are out of further options." |
|
Back to top |
|
|
kutte128 Apprentice
Joined: 18 May 2004 Posts: 173
|
Posted: Fri Dec 01, 2006 12:57 pm Post subject: |
|
|
hi,
tjaaa mit +latin1 use-flag (ansonsten isses unter gentoo utf-8!) bleibt zwar das isogedöns, aber dann habe ich das problem das der ganze utf-8 kram fehlerhaft wiedergegeben wird.
die daten die probleme mache liegen übrigens im iso-format vor, sollen sie auch weil die komlette seite wo sie gebraucht werden in iso gehalten ist und ich dem jenigen der die hinundwieder mal bearbeitet auch nichts von utf-8 erzählen brauch.
das geht 2x gut, beim 3ten mal heissts dann "utf was? sowas hab ich net ich hab windows!" - einer kam sogar mit anwalt weil ich seine html-seite in utf-8 gebastelt hatte .....
schön wärs halt, wenn man - wie bei html auch - sagen könnte: diese tabelle ist iso, diese ist utf-8. und ich dachte dafür wäre die charset-angabe beim createn der db. da es keinen unterschied macht welchen charset ich angebe (zumindest keinen den ich sehen kann) verstehe ich die möglichkeit das anzugeben nicht wirklich.
ähnlich seltsam ist, das in der my.cnf lauter default-character-set= drin stehen.
default verstehe ich als "vorgabe wenn nichts anderes angegeben ist" ist so aber eher ein entweder-oder wert.
naja mit dem mysql_query (set CHARACTER SET latin1"); klappts ja ganz gut,
ich setze deshalb den topic als solved auch wenn die charsetfragen nicht geklärt sind.
eventuell kann mich ja darüber noch jemand aufklären
vielen dank für die antworten !
grüße kutte128 |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|