phpbar.de logo

Mailinglisten-Archive

Re: MySQL und Tcl/Tk - Zeichensatzprobleme
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MySQL und Tcl/Tk - Zeichensatzprobleme



Hallo Dieter,

(und ich dachte schon ich bin der eizige der mit tvl und mysql arbeitet)

also mit dem Modult von Tobias Ritzau (mysqltclsh - 1.53) funktioniert das
wirklich prima wenn Du die folgende procedure benutzt.

<schnipp>
proc umlaute_db {daten} {
 regsub -all {[\(]} $daten "" daten
 regsub -all {[\)]} $daten "" daten
 regsub -all {[\\]} $daten "',CHAR(92),'" daten
 regsub -all {[\']} $daten "',CHAR(39),'" daten
 regsub -all {[\"]} $daten "\',CHAR(34),'" daten
 regsub -all {[Ä]} $daten "',CHAR(196),'" daten
 regsub -all {[Ü]} $daten "',CHAR(220),'" daten
 regsub -all {[Ö]} $daten "',CHAR(214),'" daten
 regsub -all {[ä]} $daten "',CHAR(228),'" daten
 regsub -all {[ö]} $daten "',CHAR(246),'" daten
 regsub -all {[ü]} $daten "',CHAR(252),'" daten
 regsub -all {[ß]} $daten "',CHAR(223),'" daten
 set daten_n $daten
 return $daten_n
}

set test "ich bin der äöütest"
set test2 [umlaute_db $test]
set sql "insert into db (textfeld) values(concat('$test2'))"
mysqlexec $handle $sql
<schnapp>

ja gut die routine ist noch nicht ganz fertig, aber macht das was es soll.
Probleme ergeben sich IMHO wenn due z.B. ISO 8859-2 (Ungarisch, Polisch usw)
einfügen willst. Aber der Ansatz sollte klar hervorgehen.

'testÜtest' = 'test',CHAR(220),'test'

evtl. kann jemand anderes hier bestätigen das man diese vorgehensweise bei
der compilierung muit CHARSET=german (oder so) nicht braucht, aber ich hätte
es gern immer universal.

Weite TCL fragen dann bitte per PM.

Mariano
> ich möchte eine Tcl/Tk-Anwendung auf MySQL übertragen und habe Probleme
mit
> dem Zeichensatz. Als Datenbankschnittstelle benutze ich TclSQL. Ab Version
> 8.1 benutzt Tcl intern den 16 bit Unicode Zeichensatz und wandelt extern
> (dh. bei Ein- und Ausgaben) dann in den entsprechenden eingestellten
> Zeichensatz um. Leider geschieht das nicht richtig bei der Benutzung von
> TclSQL. Deutsche Umlaute im Textfelder (und wahrscheinlich andere
> Sonderzeichen) werden nicht richtig gespeichert und die Texte sind nachher

> nicht mehr zu gebrauchen.
>
> Hat jemand einen Vorschlag, wie man dieses "miese" Verhalten ändern kann?
Es
> ist nicht sinnvoll einzelne Zeichen umzubiegen, da nicht voraussehbar ist,
> ob andere Sonderzeichen (z.B. französche) im Text vorkommen.
>
> Herzlichen Dank für eure Hilfe
>
> Dieter
>
> Dr. med. Dipl.-Math. Dieter Becker
> Medizinische Universitäts- und Poliklinik
> Innere Medizin III
> D66421 Homburg



---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive