anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: So 08 Jun, 2025 17:28

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Lotgd in utf-8
BeitragVerfasst: Mi 19 Nov, 2008 11:20 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Hallo alle zusammen.

Ich wollte just zu Testzwecken einmal ein sauberes LotgD aufsetzen, was auch kein Problem darstellte. Dabei fiel mir allerdings auf, dass die die Dateien ja immer noch in latin-1 kodiert sind. Sie per recode oder iconv neu zu kodiern klappt auch, allerdings bekomme ich apache und php nicht so konfiguriert, das sie das ganze auch sauber ausgeben. Ich habe es nun mit default_charset in php und AddDefaultCharset für den Apachen jeweils mit utf-8 getestet und firefox meldet auch einen Unterschied (standardmäßig latin-1, bei setzen von default_charset utf8), allerdings sind die Zeichen immer noch zerschossen ("Jägerhütte" statt "Jägerhütte").

Wisst ihr welche Flags oder Direktiven ich nutzen muss? Möglichst ohne komplexere Angelegenheiten wie iconv und mbstring in php - wenn das ganze tut würde ich es wohl als komplett angepasste Version hier rein stellen.
Noch einmal: Es geht nur um die Auslieferung der aus den Dateien stammenden Inhalte durch den Server, unabhängig von MySQL etc. Texteditoren stellen die Dateien in beiden Kodierungen korrekt da.

Schönen Tag noch,
Auric

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Mi 19 Nov, 2008 15:28 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Wie wäre es denn mit einem utf8_decode in der output-Funktion? Dann würde zumindest die Ausgabe stimmen.
Auch wenn dies wohl nur Ursachenbekämpfung sein würde - Und nicht die aktuelle Lösung. (Ausser das Problem liegt an Firefox - Oder dem Browser allgemein)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Mi 19 Nov, 2008 18:01 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Ich musste, um das zu erreichen, folgendes tun:

- Umkodierung aller Dateien nach UTF-8
- Setzen des Headers "Content-type" auf "text/html; charset=UTF-8"
- Ersetzen aller HTMLEntities()-Funktionen durch HTMLSpecialchars()
- Überladen aller Stringfunktionen durch ihre MB-Varianten (über .htaccess, eigener Wrapper wäre vielleicht plattformunabhängiger)
- Explizites setzen der MySQL-Verbindung auf UTF-8 bei jedem DB-Connect.

Das Umkodieren der Dateien hab ich per Hand gemacht - Ctrl+X, umstellen des Charsetzs, Ctrl+V. Hat Problemlost geklappt mit Geany.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Do 20 Nov, 2008 09:02 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 15 Okt, 2005 14:06
Beiträge: 864
Geschlecht: Männlich
LoGD: http://shinobilegends.com
Da ich derjenige war, die die 1.x.x DP Edition UTF-8 (oder was auch immer) gemacht hat, dazu von mir was nötig war:
  • Ersetzen aller HTMLEntities()-Funktionen durch HTMLSpecialchars() <--- warum? HTMLEntities("string",ENT_COMPAT,"UTF-8") tut es auch
  • header("Content-Type: text/html; charset=".getsetting('charset','ISO-8859-1' )); in die common.php (das letzte holt das setting)
  • wenn man das auf dem apache nutzen will - defaultcharset einstellen
  • den mysql so einstellen wie man ihn haben will - man braucht nach meiner Meinung keine NAMES oder sonstwas Anweisung im Lotgd. Einfach Tabellen entsprechend einstellen und gut.

Klappt prima soweit.

_________________
Entwicklung Lotgd 1.2.2 +nb
1.2.1 +nb ist final

Bugreports/Testing erwünscht, http://nb-core.org

Wichtige Info für Programmierersucher:
viewtopic.php?f=34&t=4285


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Do 20 Nov, 2008 15:55 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Ganz einfach: HTMLSpecialchars ersetzt ", ', <, > und &. Mehr braucht UTF-8 nicht. Es ist also Unsinnig, ein Table-Lookup machen über HTMLEntities, da es sowieso nicht mehr gibt. Getestet, was schneller ist, hab ich allerdings nicht, lasse mich eines besseren Belehren. HTMLEntities sollte man nur gebrauchen, wenn man unterschiedliche Charsets verwenden lässt. Und ob man nun alle HTMLEntities() erweitert, oder durch die andere Funktion ersetzt - vom Aufwand dürfte es ungefähr das gleiche sein.
Den MySQL-Server müsste man in den Konfigurationen umstellen, um UTF-8 zu bekommen. Ein reines Umstellen der Datenbank auf UTF-8 hat *nicht* geholfen. Die Anfragen kamen trotzdem mit ISO-8859-1 zurück - frag mich nicht warum. Kann sein, dass andere MySQL-Versionen da anders reagieren. Ich speichere Texte allerdings in Strings und nicht Binär - kann daran liegen. 1.1.x speichert die Übersetzungen ja Binär?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Do 20 Nov, 2008 16:21 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 15 Okt, 2005 14:06
Beiträge: 864
Geschlecht: Männlich
LoGD: http://shinobilegends.com
Hm, okay - die Special Chars wandeln aber sonst brav die Zeichen in HTML konforme um, ja?
Sonst machts ja wenig Sinn - meine japanischen Zeichen müssen ja auch als Nav erscheinen können.

Die Übersetzungen sind schon binär - BLOB... was eher problematisch ist :-/ ich würd die generell in UTF-8 lieber sehen. So heißt es "stell Dein Charset auf meins, dann gehen auch die Übersetzungen".

Egal.

Dafür sind in allen meiner Tabellen UTF-8 Daten drin - und ich hatte an sich nie Probleme damit - nur beim Import über Kommandozeile darf man das SET NAMES nicht vergessen - ansonsten ... anfangs waren nichtmal die Tabellen UTF-8...sondern latin1 - ging dennoch.

_________________
Entwicklung Lotgd 1.2.2 +nb
1.2.1 +nb ist final

Bugreports/Testing erwünscht, http://nb-core.org

Wichtige Info für Programmierersucher:
viewtopic.php?f=34&t=4285


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Do 20 Nov, 2008 18:39 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Nein. Ausser die erwähnten werden keine Zeichen umgewandelt. Ist auch herzlich sinnlos bei UTF-8. &auml; und Co werden ja nur gebraucht, wenn es das Zeichen eben nicht im aktuellen Zeichensatz gibt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: So 30 Nov, 2008 16:08 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Ok, per HTMLSpecialchars und den passenden Querys an die DB für die richtige Kodierung läuft nun alles zu meiner Zufriedenheit. Ich plane das ganze als "saubere" ext3 (GER) Variante hier hoch zu laden, wenn der gröbste Dreck (keine Single-Quotes in Array-Keys usw.) erstmal raus ist. Die Änderungen für PHP5 und eben UTF-8 sind schon drin, das Commentary-MiO-Bundle mit Farbhack ebenso.

Den derzeitigen Stand gibt es unter http://dav.toifras.de/blanklotgd/trunk/

Jetzt bitte nicht ausschimpfen, das ich es den Faulpelzen noch einfacher machen will *g*
Falls noch jemand empfehlenswerte mods kennt, die in die Distribution mit rein sollen bitte hier melden.

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: So 30 Nov, 2008 16:38 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 15 Okt, 2005 14:06
Beiträge: 864
Geschlecht: Männlich
LoGD: http://shinobilegends.com
Zitat:
Jetzt bitte nicht ausschimpfen, das ich es den Faulpelzen noch einfacher machen will *g*


?
Wenn jemand etwas konformer macht sowie bugfixes (was das mit den singlequotes ist) einpflegt, halte ich das nicht für ne Hilfe für Faulpelze.
Ich freu mich ja auch, wenn ne Software die ich mir runterlade funktioniert ;) und sauber programmiert ist. Ich möcht ungern im Quellcode das Ding erstmal lauffähig machen müssen...

"Danke" statt Ausschimpfen von mir =)

_________________
Entwicklung Lotgd 1.2.2 +nb
1.2.1 +nb ist final

Bugreports/Testing erwünscht, http://nb-core.org

Wichtige Info für Programmierersucher:
viewtopic.php?f=34&t=4285


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Di 02 Dez, 2008 13:50 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 16 Jul, 2005 22:40
Beiträge: 693
Wohnort: /var/server/home/castle
Geschlecht: Männlich
LoGD: http://www.kokoto.de/
Skype: Apfelschokowodkakekskuchen
jo find ich auch gut, ich habe das alles gemacht und muss sagen das es sehr aufwendig ist, und sich viele vlt auch nicht insoweit damit auskennen und dneke es wäre gut für die neulinge wen nsie sauberen code als vorlage haben, damit wir nicht immer darauf hinweisen müssen, außerdem tust du das für die allgemeinheit und das ist doch schonmal was ;)

mach weiter so auric =D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Do 04 Dez, 2008 00:24 
Offline
Held
Held
Benutzeravatar

Registriert: Mo 17 Apr, 2006 08:39
Beiträge: 290
Wohnort: Lübeck
Geschlecht: Männlich
LoGD: http://antara-rosadrache.de
Skype: eichi-san
Ich muss gestehen, ich hab in manchen alten Dateien immernoch schwachfug wie singlequotes drinne, leider, aber das ist mittlereile so viel und ich hab sooo viel zu tun.. :lol:

Ne ich finds auch super, wenns einmal erstmal sauber ist, hat man doch auch gute Beispiele und so, Ich täte sicher von Anfang an sauberer programmieren, wenn ich mir bedenke wieviel Arbeit ich mir damit erspart habe, außerdem, so werden in Zukunft auch weniger Leutz hier ihre Fehler mit singlequotes usw. haben, wie Tidus meinte, ist doch ein gutes Werk für uns alle :D

Auch von mir *anfeuer* weiter so :lol:

LG, Eichi

_________________
Ist es nicht die Weisheit, die ein Mensch zu erlangen sucht?!
Der Knochen kommt nicht von alleine zum Hund, schön wärs ._.

Schokopudding, der sich von alleine kochen kann.......


BLUBBBEL!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Sa 27 Jun, 2009 17:03 
Offline
Profi
Profi

Registriert: Mo 30 Okt, 2006 21:29
Beiträge: 195
*Ausgrab*

Da ich mein Logd gerne auf utf8 umstellen möchte, aus den Beschreibungen jedoch nicht ganz schlau werde, würde ich mich über eine kleine Hilfestellung sehr freuen.

Also, ich hab einen mehr oder weniger aktuellen xampp mit php 5 und ein LoGD 0.9.7 +jt ext (GER) 3

Mein Fortschritt...

Eliwood hat geschrieben:
Ich musste, um das zu erreichen, folgendes tun:

- Umkodierung aller Dateien nach UTF-8 Erledigt
- Setzen des Headers "Content-type" auf "text/html; charset=UTF-8" Wo und wie genau?
- Ersetzen aller HTMLEntities()-Funktionen durch HTMLSpecialchars() Erledigt
- Überladen aller Stringfunktionen durch ihre MB-Varianten (über .htaccess, eigener Wrapper wäre vielleicht plattformunabhängiger) Ahm .. Hä?
- Explizites setzen der MySQL-Verbindung auf UTF-8 bei jedem DB-Connect. hm?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Di 30 Jun, 2009 08:31 
Offline
Profi
Profi

Registriert: Mo 30 Okt, 2006 21:29
Beiträge: 195
nix?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Di 30 Jun, 2009 10:36 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
mbstring überladen
Wie sendet man mit PHP HTTP-Header
Setzen der MySQL-Verbindung auf utf-8:
$this->bbcode_second_pass_code('', 'SET CHARACTER SET utf8')

Edit: Auf Windows ist das funktionieren des Überladens in einer .htaccess nicht sicher. Es ist hier besser, wenn man in der php.ini das überladen aktiviert.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Di 30 Jun, 2009 14:49 
Offline
Profi
Profi

Registriert: Mo 30 Okt, 2006 21:29
Beiträge: 195
Vielen Dank Eliwood.

Nur noch n paar Fragen um sicher zu gehen ^^

Also in der php.ini ;mbstring.func_overload auf 7 stellen und in jeder Datei die Funktionen (mail(),substr(),ereg(), etc...) mit ihren mb_ Varianten ersetzen?

Und existiert schon ein header() den ich nur nicht finde und umschreiben muss oder kann ich die Funktion einfach in den page_footer() über das echo hauen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Di 30 Jun, 2009 23:51 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Nein - das Überladen verhindert eben, dass du nicht ersetzen musst. ;)
Wenn das Überladen aber nicht funktioniert (warum auch immer), musst du die Funktionen ersetzen. Um zu testen, obs klappt, kannst du in einer (UTF-8-Kodierten) Testdatei strlen von ä ausgeben. Vor dem überladen müsste die Funktion 2 zurückgeben - danach aber nur noch 1.

Der Header.. Nein, LoGD sendet in der Standard-Version eigentlich keinen Content-Header. Wenn doch, kannst du header als zweiten parameter true übergeben, damit er den vorherigen überschreibt, oder du suchst ihn einfach. Vor echo reicht eigentlich.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Mi 01 Jul, 2009 08:43 
Offline
Profi
Profi

Registriert: Mo 30 Okt, 2006 21:29
Beiträge: 195
Irgendwie mag mich mein XAMPP nicht...

Hab sowol php.ini als auch php5.ini geändert, habs mit und ohne mb_ vor strlen() versucht, hab dazwischen immer wieder Apache und mysql runter und hochgefahren, hab auch noch alle mbstring funktonen in den ini Datein aktiviert...
$this->bbcode_second_pass_code('', '

[mbstring]
; language for internal character representation.
;mbstring.language = Japanese
mbstring.language = German

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
;mbstring.internal_encoding = EUC-JP
mbstring.internal_encoding = UTF-8

; http input encoding.
;mbstring.http_input = auto
mbstring.http_input = auto

; http output encoding. mb_output_handler must be
; registered as output buffer to function
;mbstring.http_output = SJIS

; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
;mbstring.encoding_translation = Off
mbstring.encoding_translation = On

; automatic encoding detection order.
; auto means
;mbstring.detect_order = auto
mbstring.detect_order = auto

; substitute_character used when character cannot be converted
; one from another
;mbstring.substitute_character = none;
mbstring.substitute_character = none;

; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
mbstring.func_overload = 7
')

aber egal was ich ändere, eines ändert sicht nicht ... ä = 2 -.-


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Mi 01 Jul, 2009 08:46 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Auch mb_strlen('ä'); wird zu 2?
Wenn ja ist das *sehr* merkwürdig.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Lotgd in utf-8
BeitragVerfasst: Mi 01 Jul, 2009 09:06 
Offline
Profi
Profi

Registriert: Mo 30 Okt, 2006 21:29
Beiträge: 195
Jo, ändert sich nix. Hab nu auch den PC neu gestartet, bleibt allerdings immernoch 2.

Scheinen änderungen eigentlich mit phpinfo() auf? Denn dort sind die ganzen mb Funktionen immernoch auf Standartwerten und aus.

$this->bbcode_second_pass_code('', '
mbstringMultibyte Support enabled
Multibyte string engine libmbfl
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 4.4.4
Multibyte regex (oniguruma) backtrack check On

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

Directive Local Value Master Value
mbstring.detect_order no value no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding no value no value
mbstring.language neutral neutral
mbstring.strict_detection Off Off
mbstring.substitute_character no value no value
')



edit.

Vielleicht liegt es an meinem XAMPP oder ich hab doch was falsch gemacht. Ich frag mal bei Apache friends nach.



edit.

Hab die falsche php.ini bearbeitet und mbstring.internal_encoding = UTF-8 musste auch noch rein. Jetzt funzt es.

Danke


edit.

Da PhpMyAdmin mit aktivierten mbstring nicht funzt, hab ich alle entsprechenden stringfunktionen durch eigene ersetzt die, je nach einstellung, ggf die stringfunktionen durch ihre mb varianten ersetzt.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 19 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum