Hallo zusammen
Debian GNU/Linux 6.0
PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 08:24:40)
TCPDF Version : 5.9.145
TCPDF benutzte Schriftart: "dejavusans" (truetype, besitzt alle UTF-8 Zeichen)
Kurze Einführung:
Wir haben über Apache/PHP eine Rechnungsstellung die dem User bei klick PDF's ausgibt - und egal was für Zeichen der Kunde eingegeben hat, die Zeichen werden korrekt in der PDF wiedergegeben.
Wir haben auch eine automatische Rechnungsstellung (selber Code, bloß via cronjob angeworfen), die dem Kunden die Rechnungen via Mails zusenden.
Die Daten werden aus einer MySQL Tabelle geladen welche den Zeichensatz utf8_unicode_ci handlet.
MySQL wird in der Webanwendung sowie beim CLI (Cronjob) Aufruf auf UTF-8 gesetzt.
In beiden php.ini's (apache, cli) ist 'default_charset = "UTF-8"'
Die debian locale ist "de_utf-8"
Problem:
In der Webversion werden wie gesagt alle Zeichen original wiedergegeben, in der Cronjob Version werden Strings mit utf8 zeichen einfach "verschluckt"...
Ich hab mit TCPDF sowie verschiedenen anderen Einstellungen herumgespielt und getestet aber bekomme es einfach cniht hin das in der CLI / Cronjob version alle UTF-8 Zeichen korrekt ausgegeben werden.. (äöü werden, wenn extra nochmal utf8_encode() genutzt wird, korrekt dargestellt, aber zB. das Türkische "i"-Zeichen ohne den i Punkt, wird mit einem "?" ersetzt)
Wie gesagt der Code in der Webanwendung vorliegt ist der selbe welcher bei der Cronjob Version ausgeführt wird.
Woran könnte die Inkompatibilität mit den Zeichen liegen?
Viele Grüße
[gelöst] UTF-8 Problem in PHP CLI
[gelöst] UTF-8 Problem in PHP CLI
Zuletzt geändert von exxecc am 28.08.2012 09:31:31, insgesamt 1-mal geändert.
Re: UTF-8 Problem in PHP CLI
Einmal
Der cron-Job wird wohl nicht mit der System-Locale arbeiten, sondern mit
LANG=C oder LANG=POSIX.
Wenn es daran liegt,
müßte ein händisches Ausführen des Job-Befehls oder -Skripts in einer "normalen" bash oder sh eine korrekte Ausgabe liefern.
<->PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 08:24:40)
weiterhin "TCPDF Version : 5.9.145" (2012-01-28) mittlerweile als 5.9.180.Paket php5
squeeze (stable) (web): In HTML eingebettete, serverseitige Skriptsprache (Meta-Paket)
5.3.3-7+squeeze14 [security]: all
Der cron-Job wird wohl nicht mit der System-Locale arbeiten, sondern mit
LANG=C oder LANG=POSIX.
Wenn es daran liegt,
müßte ein händisches Ausführen des Job-Befehls oder -Skripts in einer "normalen" bash oder sh eine korrekte Ausgabe liefern.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: UTF-8 Problem in PHP CLI
Das Problem wurde gelöst... wieder was ganz dummes..
ich instanziere das MySQL query object, setzte UTF8, und beginne mit dem Script - wobei ab dem ersten query das MySQL Object nochmals neu instanziert wird - ohne UTF8 zu setzen -.-
gefailt..
ich instanziere das MySQL query object, setzte UTF8, und beginne mit dem Script - wobei ab dem ersten query das MySQL Object nochmals neu instanziert wird - ohne UTF8 zu setzen -.-
gefailt..