AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP/JS] Unicode-Problem

Ein Thema von alcaeus · begonnen am 14. Apr 2006 · letzter Beitrag vom 18. Apr 2006
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#21

Re: [PHP/JS] Unicode-Problem

  Alt 14. Apr 2006, 23:06
Zitat von Frickeldrecktuxer_TM:
Daß beim Zurücksenden an den Client dieser es richtig interpretiert, ist schonmal ein gutes Zeichen, denn jetzt gehen beim Hin- und Herkodieren keine Informationen mehr verloren (z.B. das Charset).
Ein- und Ausgabe geht also, jetzt musst du nur noch die Daten richtig konservieren. Funkt vielleicht die Datenbank durch eine eigene Zeichentranskodierung dazwischen, oder geschieht gar das Auslesen aus der Datenbank nach ISO-irgendwas oder ASCII/ANSI?
Jup, das ist leicht moeglich. Ich weiss nicht was meine grad eingestellt hat; das Problem ist jedenfalls, dass dieses System ja nicht nur auf meiner Datenbank anstaendig funktionieren muss, sondern auf mehreren; und dort kann ich das Charset nicht so umstellen wie es mir passt. Die Frage ist jetzt, wie ich das Ding noch codieren muss, damit es auch in der Datenbank richtig eingetragen wird Wenn es mal in der Datenbank passt, dann ist der Rest nur noch Peanuts *g*

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#22

Re: [PHP/JS] Unicode-Problem

  Alt 14. Apr 2006, 23:14
Zitat von alcaeus:
Naja, IE und Firefox machen aus € nur '%E2%82%AC', was natuerlich dazu fuehrt, dass drei sonderbare Zeichen anstatt dem Euro-Zeichen eingefuegt werden.
Das ist aber genau die Codierung für "€" in UTF-8, drei Bytes mit den Werten $E2, $82 und $AC hintereinander. Vielleicht hast du ja schon genau das, was du brauchst, und glaubst es nur selbst nicht?

Zitat von alcaeus:
PS: koennte mir evtl. jemand erklaeren, wie ich dieses Spezialformat umwandeln muss? Ich verstehe diese Tabelle nicht ganz
Macht meine Routine doch für dich. Im Grund musst du nur die Bits des Unicodes (in diesem Beispiel 20AC = 10.0000.1010.1100) von rechts nach links für die "x" einsetzen. Dann erhältst du die UTF-8 Repräsentation.

Code:
U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
                       +       10   000010   101100
                         --------------------------
                       = 11100010 10000010 10101100
                               E2       82       AC
//----
Mist: da wird man abgelenkt und verpasst eine komplette Stunde
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#23

Re: [PHP/JS] Unicode-Problem

  Alt 14. Apr 2006, 23:17
Zitat von Flocke:
Das ist aber genau die Codierung für "€" in UTF-8, drei Bytes mit den Werten $E2, $82 und $AC hintereinander. Vielleicht hast du ja schon genau das, was du brauchst, und glaubst es nur selbst nicht?
Jup, teilweise jedenfalls. An der Datenbank arbeite ich noch

Zitat von Flocke:
Mist: da wird man abgelenkt und verpasst eine komplette Stunde
Ist schon ok, wenigstens weiss ich jetzt wie ich mit der Tabelle umgehn muss; das zu wissen kann nicht schaden

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Frickeldrecktuxer_TM
(Gast)

n/a Beiträge
 
#24

Re: [PHP/JS] Unicode-Problem

  Alt 15. Apr 2006, 12:21
Zitat von alcaeus:
das Problem ist jedenfalls, dass dieses System ja nicht nur auf meiner Datenbank anstaendig funktionieren muss, sondern auf mehreren
Das ist immer das Problem, wenn man mit Strings arbeitet. Das wurde beseitigt, als man Unicode eingesetzt hat, aber das bringt auch nichts, wenn auch nur ein Glied kein Unicode spricht.
Die richtige Methode wäre eine Zeichensatzumwandlung in das Format, das die Datenbank gerade haben will und eine Rückumwandlung in ein Format, das du intern haben willst. Die Hinumwandlung sollte bereits der Datenbanklayer erledigen, das Zurückumwandeln im Idealfall auch, dafür müsste man der Datenbank aber mitteilen, in welchem Zeichensatz man den String haben will.
Vielleicht ist es hier einfacher, auf ein Datenbankobjekt zurückzugreifen, daß keinerlei Umwandlung durchführt, sondern lediglich das speichert, was du der Datenbank übergibst. Mal über ein BLOB nachgedacht? (Auch wenn es sich hier eher um ein Binary Small Object handelt )
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#25

Re: [PHP/JS] Unicode-Problem

  Alt 15. Apr 2006, 12:26
Zitat von Frickeldrecktuxer_TM:
Vielleicht ist es hier einfacher, auf ein Datenbankobjekt zurückzugreifen, daß keinerlei Umwandlung durchführt, sondern lediglich das speichert, was du der Datenbank übergibst. Mal über ein BLOB nachgedacht? (Auch wenn es sich hier eher um ein Binary Small Object handelt )
Jain, eher nicht. Es geht ja eben um das Feld, das im phpBB die Beitraege speichert; und was mich ueberrascht ist, dass das Zeichen richtig ankommt wenn das Form normal abgesendet wird. Das Problem gibts nur, wenn das Absenden ueber JavaScript geschieht; irgendwo wird da was nicht korrekt umgewandelt. Ich muss mich heute erstmal wieder sammeln, und die Ganze Sache auseinanderfriemeln; irgendwo ist da der Wurm drin.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Frickeldrecktuxer_TM
(Gast)

n/a Beiträge
 
#26

Re: [PHP/JS] Unicode-Problem

  Alt 15. Apr 2006, 12:36
Zitat von alcaeus:
und was mich ueberrascht ist, dass das Zeichen richtig ankommt wenn das Form normal abgesendet wird.
Als was denn? UTF-8? ISO-8859-1? Windows-1252?
Vielleicht schickt der Browser es bei seiner HTTP-Anfrage in einem anderen Zeichensatz ab als du es über DOM ausliest und an das PHP-Script schickst?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#27

Re: [PHP/JS] Unicode-Problem

  Alt 18. Apr 2006, 16:53
So, hat etwas laenger gedauert, aber ich musste erstmal das Fenster wechseln. Das kommt davon wenn man Scriptsprachen zum Fenster rauswirft, es vorher aber nicht oeffnet
Egal, zurueck zum Thema:

Zitat von Frickeldrecktuxer_TM:
Als was denn? UTF-8? ISO-8859-1? Windows-1252?
Vielleicht schickt der Browser es bei seiner HTTP-Anfrage in einem anderen Zeichensatz ab als du es über DOM ausliest und an das PHP-Script schickst?
Zur Zeit ist das charset ISO-8859-1. Das Problem ist dass es manchmal UTF-8 ist, manchmal ISO-8859-x, praktisch kann es alles beliebige sein; je nachdem was in der Sprachdatei des phpBB eingestellt ist. Deshalb kann ich mich auf so eine Angabe nicht verlassen.
Ich habs jetzt natuerlich auch mal mit encodeURI() versucht. Jetzt kommt der "korrekte" String fuer € raus: %E2%82%AC. Der Server interpretiert dies bei einem rawurldecode() allerdings als "€", also alle drei Teile getrennt. Da war mir die alte Variante ja noch fast lieber; die kann ich wenigstens erkennen und bearbeiten.

Von anderer Seite gabs auch noch einen Tipp, dass ich auf Serverseite pack() verwenden sollte, aber die Verwendung der Funktion ist mir mehr als nur schleierhaft

Hat jemand einen Rat fuer mich (abgesehen von "lass es sein" )

Greetz
alcaeus

[add="ein paar stunden spaeter"]So, geht jetzt, mit einer haesslichen Kombination von Frickeleien Ich wandle dieses %u20AC-Dingens das ich vom Browser kriege in einen gueltigen String um. Landet zwar nicht ganz korrekt in der Datenbank, stoert mich zum jetztigen Zeitpunkt aber kein bisschen Hauptsache es funktioniert[/add]
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz