Perl / MySQL Kodierungsprobleme – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self Perl / MySQL Kodierungsprobleme Fri, 28 Nov 14 16:41:44 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626080#m1626080 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626080#m1626080 <p>Hallo,</p> <p>Ich hab das Problem das werte die aus meiner MySQL Datenbank nicht in UTF-8 beim Perl Script ankommen.</p> <p>Auf der gesamten Seite gibt es keinerlei kodierungsprobleme und ich hab im head UTF-8 angegeben.<br> <code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">charset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>utf-8<span class="token punctuation">"</span></span><span class="token punctuation">></span></span></code></p> <p>Außerdem hab ich bei dem Befehl zum herstellen der Verbindung auch UTF-8 angegeben.</p> <p><code class="language-perl"><span class="token keyword">my</span> <span class="token variable">$datenbank_bandnamen</span> <span class="token operator">=</span> DBI<span class="token operator">-></span>connect<span class="token punctuation">(</span><span class="token string">"DBI:mysql:database=$db_name"</span><span class="token punctuation">,</span> <span class="token variable">$db_user</span><span class="token punctuation">,</span> <span class="token variable">$db_pass</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>mysql_enable_utf8 <span class="token operator">=></span> <span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></p> <p>Desweiteren hab ich beim phpMyAdmin bei "Zeichensatz/Kollation der MySQL-Verbindung" auch utf8_unicode_ci angebenen und das gleiche auch bei sämtlichen Tabellen bei allen werten utf8_unicode_ci.<br> Trotzdem erscheint immer bei den umlauten dieses Fragezeichen...</p> <p>Mir gehen da langsam die Ideen aus :(</p> <p>Hoffe ihr könnt mir weiterhelfen.</p> <p>Freundliche grüße und danke im voraus.</p> <p>Martin</p> Perl / MySQL Kodierungsprobleme Sat, 29 Nov 14 19:17:36 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626094#m1626094 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626094#m1626094 <blockquote> <p><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">charset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>utf-8<span class="token punctuation">"</span></span><span class="token punctuation">></span></span></code></p> </blockquote> <p>Das nützt "nicht immer". Meist halt nur beim lokalen Öffnen. Gibt es denn einen HTTP-Header?</p> <p>print "Content-Type: text/html; charset=UTF-8\n\n";</p> <p>Oder ist gar sicher, dass nur die Daten aus der Datenbank verkorkst ankommen?</p> <p>Jörg Reinholz</p> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 07:35:16 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626088#m1626088 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626088#m1626088 <p>Moin Moin!</p> <p>Du hast Browser und DB überzeugt, UTF8 zu benutzen. Fehlt nur noch Perl.</p> <p>UTF8-Flag (blöder, weil fehlleitender Name!) bei den an DBI übergebenen Strings gesetzt? Sprich: ist <code class="language-perl">utf8<span class="token punctuation">:</span><span class="token punctuation">:</span>is_utf8<span class="token punctuation">(</span><span class="token variable">$text</span><span class="token punctuation">)</span><span class="token operator">==</span><span class="token number">1</span></code>?</p> <p>Wenn nicht, brauchst Du Encode, um die Bytes vom Webserver in einen UTF8-String umzusetzen. Wenn Du das CGI-Modul benutzt, erledigt das das Pragma -utf8, sprich: Du bindest CGI mit <code class="language-perl"><span class="token keyword">use</span> CGI <span class="token string">qw( -utf8 )</span><span class="token punctuation">;</span></code> ein.</p> <p>Sieh Dir mal die Tests 40UnicodeRoundTrip.t und 41Unicode.t aus <a href="http://search.cpan.org/dist/DBD-ODBC/" rel="nofollow noopener noreferrer">DBD::ODBC</a> an, dann wird das hoffentlich etwas klarer.</p> <p><a href="http://perldoc.perl.org/perlunitut.html" rel="nofollow noopener noreferrer">perlunitut</a>, <a href="http://perldoc.perl.org/perlunifaq.html" rel="nofollow noopener noreferrer">perlunifaq</a> und <a href="http://perldoc.perl.org/perlunicode.html" rel="nofollow noopener noreferrer">perlunicode</a> solltest Du gelesen und verstanden haben.</p> <p>Alexander</p> <div class="signature">-- <br> Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". </div> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 12:19:18 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626084#m1626084 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626084#m1626084 <p>Bitte einmal zum Verständnis lesen:<br> <a href="http://perlgeek.de/de/artikel/charsets-unicode" rel="nofollow noopener noreferrer">http://perlgeek.de/de/artikel/charsets-unicode</a></p> <p>Mir hilft es immer, wenn ich genau weiss, was in den Variablen drinsteht, mit denen ich es zu tun habe. "Im Browser sehe ich ein Fragezeichen" ist mir da zu wenig.</p> <p>Hiermit siehst du genau, was Sache ist:</p> <pre><code class="block language-perl"><span class="token keyword">use</span> Devel<span class="token punctuation">:</span><span class="token punctuation">:</span>Peek<span class="token punctuation">;</span> Dump <span class="token variable">$var</span><span class="token punctuation">;</span> </code></pre> <p>Die Daten sollten aus mysql mit utf-8-Flag rauskommen, also dekodiert.<br> Beim Rausschreiben (an den Webserver z.B.) musst du die Daten wiederum enkodieren. Z.B. mit Encode::encode_utf8(), oder mit dem setzen von<br> binmode STDOUT, ':encoding(UTF-8)';</p> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 13:54:01 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626081#m1626081 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626081#m1626081 <p>Also, mit:</p> <pre><code class="block language-perl"><span class="token comment">#!/usr/bin/perl </span> <span class="token keyword">use</span> utf8<span class="token punctuation">;</span> binmode STDOUT<span class="token punctuation">,</span> <span class="token string">":encoding(UTF-8)"</span><span class="token punctuation">;</span> <span class="token comment"># das scheint hier wichtig zu sein. </span> <span class="token keyword">print</span> <span class="token string">"Content-Type: text/html; charset=UTF-8\n\n"</span><span class="token punctuation">;</span> </code></pre> <p>sehe ich die Umlaute aus meiner Datenbank unter allen Umständen korrekt.</p> <p>Jörg Reinholz</p> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 14:13:49 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626082#m1626082 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626082#m1626082 <blockquote> <p>Also, mit:</p> <pre><code class="block language-perl"></code></pre> </blockquote> <p>#!/usr/bin/perl</p> <blockquote> <p>use utf8;<br> binmode STDOUT, ":encoding(UTF-8)"; # das scheint hier wichtig zu sein.<br> print "Content-Type: text/html; charset=UTF-8\n\n";</p> </blockquote> <pre><code class="block"> > > sehe ich die Umlaute aus meiner Datenbank unter allen Umständen korrekt. schrieb ich ja weiter oben auch, und war laut lxuser auch die lösung. das "use utf8" ist hier übrigens unnötig. wird aber oft unwissend verwendet in dem glauben, jedes skript, welches mit unicode arbeitet, braucht "use utf8". use utf8 ist nur dann von nutzen (aber auch nicht immer nötig), wenn das skript selbst (also der quelltext) utf8 enthält und beispielsweise direkt im skript notierte variableninhalte automatisch dekodiert sein sollen. ~~~perl use utf8; my $text = "ümlaut"; </code></pre> <p>entspricht dem hier:</p> <pre><code class="block language-perl"><span class="token keyword">use</span> Encode<span class="token punctuation">;</span> <span class="token keyword">my</span> <span class="token variable">$text</span> <span class="token operator">=</span> decode_utf8<span class="token punctuation">(</span><span class="token string">"ümlaut"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>use utf8 dekodiert also sozusagen automatisch im skript vorhandene inhalte.<br> inhalte von extern (datenbank, CGI, dateien) müssen weiterhin selbst mittels Encode bearbeitet werden.</p> <p>wollte ich nur loswerden aus dem o.g. grund.</p> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 14:33:55 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626083#m1626083 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626083#m1626083 <blockquote> <p>schrieb ich ja weiter oben auch, und war laut lxuser auch die lösung.</p> </blockquote> <p>Jaja. Ich hatte die Frage eine Weile offen, weil ich Besuch hatte. Inzwischen warst Du halt schneller und ich hatte einen Kaffee.</p> <p>Jörg Reinholz</p> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 13:05:35 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626085#m1626085 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626085#m1626085 <blockquote> <p>Bitte einmal zum Verständnis lesen:<br> <a href="http://perlgeek.de/de/artikel/charsets-unicode" rel="nofollow noopener noreferrer">http://perlgeek.de/de/artikel/charsets-unicode</a></p> <p>Mir hilft es immer, wenn ich genau weiss, was in den Variablen drinsteht, mit denen ich es zu tun habe. "Im Browser sehe ich ein Fragezeichen" ist mir da zu wenig.</p> <p>Hiermit siehst du genau, was Sache ist:</p> <pre><code class="block language-perl"></code></pre> </blockquote> <p>use Devel::Peek;</p> <blockquote> <p>Dump $var;</p> </blockquote> <pre><code class="block"> > Die Daten sollten aus mysql mit utf-8-Flag rauskommen, also dekodiert. > Beim Rausschreiben (an den Webserver z.B.) musst du die Daten wiederum enkodieren. Z.B. mit Encode::encode\_utf8(), oder mit dem setzen von > binmode STDOUT, ':encoding(UTF-8)'; AHH das wusste ich nicht das ich das noch kodieren muss. hab das problem jetzt mit `binmode(STDOUT, ":utf8"); `{:.language-perl} gelöst Vielen Dank! </code></pre> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 13:16:58 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626086#m1626086 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626086#m1626086 <blockquote> <p>AHH das wusste ich nicht das ich das noch kodieren muss.</p> </blockquote> <p>daher hilft es ungemein, zum verständnis der ganzen problematik etwas zu lesen =)</p> <blockquote> <p>hab das problem jetzt mit<br> <code class="language-perl">binmode<span class="token punctuation">(</span>STDOUT<span class="token punctuation">,</span> <span class="token string">":utf8"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code><br> gelöst</p> </blockquote> <p>naja, besser - wie ich schrieb - "encoding(UTF-8)" benutzen.</p> <p>perldoc -f binmode:</p> <blockquote> <p>To mark FILEHANDLE as UTF-8, use ":utf8" or ":encoding(UTF-8)".  ":utf8" just marks the data as<br> UTF-8 without further checking, while ":encoding(UTF-8)" checks the data for actually being<br> valid UTF-8.</p> </blockquote> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 13:26:38 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626087#m1626087 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626087#m1626087 <blockquote> <blockquote> <p>AHH das wusste ich nicht das ich das noch kodieren muss.</p> </blockquote> <p>daher hilft es ungemein, zum verständnis der ganzen problematik etwas zu lesen =)</p> <blockquote> <p>hab das problem jetzt mit<br> <code class="language-perl">binmode<span class="token punctuation">(</span>STDOUT<span class="token punctuation">,</span> <span class="token string">":utf8"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code><br> gelöst</p> </blockquote> <p>naja, besser - wie ich schrieb - "encoding(UTF-8)" benutzen.</p> <p>perldoc -f binmode:</p> <blockquote> <p>To mark FILEHANDLE as UTF-8, use ":utf8" or ":encoding(UTF-8)".  ":utf8" just marks the data as<br> UTF-8 without further checking, while ":encoding(UTF-8)" checks the data for actually being<br> valid UTF-8.</p> </blockquote> </blockquote> <p>AH ok Danke :)<br> Habs geändert</p> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 12:46:43 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626089#m1626089 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626089#m1626089 <blockquote> <p>Moin Moin!</p> <p>Du hast Browser und DB überzeugt, UTF8 zu benutzen. Fehlt nur noch Perl.</p> <p>UTF8-Flag (blöder, weil fehlleitender Name!) bei den an DBI übergebenen Strings gesetzt? Sprich: ist <code class="language-perl">utf8<span class="token punctuation">:</span><span class="token punctuation">:</span>is_utf8<span class="token punctuation">(</span><span class="token variable">$text</span><span class="token punctuation">)</span><span class="token operator">==</span><span class="token number">1</span></code>?</p> <p>Wenn nicht, brauchst Du Encode, um die Bytes vom Webserver in einen UTF8-String umzusetzen. Wenn Du das CGI-Modul benutzt, erledigt das das Pragma -utf8, sprich: Du bindest CGI mit <code class="language-perl"><span class="token keyword">use</span> CGI <span class="token string">qw( -utf8 )</span><span class="token punctuation">;</span></code> ein.</p> <p>Sieh Dir mal die Tests 40UnicodeRoundTrip.t und 41Unicode.t aus <a href="http://search.cpan.org/dist/DBD-ODBC/" rel="nofollow noopener noreferrer">DBD::ODBC</a> an, dann wird das hoffentlich etwas klarer.</p> <p><a href="http://perldoc.perl.org/perlunitut.html" rel="nofollow noopener noreferrer">perlunitut</a>, <a href="http://perldoc.perl.org/perlunifaq.html" rel="nofollow noopener noreferrer">perlunifaq</a> und <a href="http://perldoc.perl.org/perlunicode.html" rel="nofollow noopener noreferrer">perlunicode</a> solltest Du gelesen und verstanden haben.</p> <p>Alexander</p> </blockquote> <p>Uff Danke.<br> Da muss ich erstmal n kopf für haben um das alles zu lesen bin grad krank da fällt mir das etwa schwer..</p> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 12:56:46 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626090#m1626090 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626090#m1626090 <blockquote> <p>Da muss ich erstmal n kopf für haben um das alles zu lesen bin grad krank da fällt mir das etwa schwer..</p> </blockquote> <p>du bist krank, programmierst aber gerade, und lesen fällt dir schwer? wie willst du da programmierfehler entdecken?</p> <p>druck dir den link, den ich unten gepostet habe, aus, leg dich aufs sofa, und lies erstmal in ruhe.</p> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 13:10:58 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626091#m1626091 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626091#m1626091 <blockquote> <blockquote> <p>Da muss ich erstmal n kopf für haben um das alles zu lesen bin grad krank da fällt mir das etwa schwer..</p> </blockquote> <p>du bist krank, programmierst aber gerade, und lesen fällt dir schwer? wie willst du da programmierfehler entdecken?</p> <p>druck dir den link, den ich unten gepostet habe, aus, leg dich aufs sofa, und lies erstmal in ruhe.</p> </blockquote> <p>XD lieber versuchen zu programmieren als nur doof rumliegen man kann man ja nicht viel machen wenn man krank ist ausser irgendwas am PC oder primitiv TV gucken was nicht mein ding ist.<br> Nur so Tutorials kann ich mir jetzt nicht geben.</p> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 13:21:48 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626092#m1626092 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626092#m1626092 <blockquote> <p>XD lieber versuchen zu programmieren als nur doof rumliegen man kann man ja nicht viel machen wenn man krank ist ausser irgendwas am PC oder primitiv TV gucken was nicht mein ding ist.</p> </blockquote> <p>OT: ich guck mir gerne dokus auf ZDFinfo, arte etc. an (natur, tiere, geschichte, wissenschaft...), wenn ich krank bin. an die frische luft gehen soll auch helfen, bin ich aber selber auch zu faul für ;-)</p> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 13:29:51 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626093#m1626093 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626093#m1626093 <blockquote> <blockquote> <p>XD lieber versuchen zu programmieren als nur doof rumliegen man kann man ja nicht viel machen wenn man krank ist ausser irgendwas am PC oder primitiv TV gucken was nicht mein ding ist.</p> </blockquote> <p>OT: ich guck mir gerne dokus auf ZDFinfo, arte etc. an (natur, tiere, geschichte, wissenschaft...), wenn ich krank bin. an die frische luft gehen soll auch helfen, bin ich aber selber auch zu faul für ;-)</p> </blockquote> <p>OT Too:<br> Jau ich hab bei meinem Receiver auch 2 Listen gepeichert:</p> <p>1. Dokus<br> 2. Schrott</p> <p>Aber da laufen auchnicht immer gute Dokus oder die wurden schon zum 1000. mal wiederholt.</p> Perl / MySQL Kodierungsprobleme Sat, 29 Nov 14 21:46:30 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626099#m1626099 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626099#m1626099 <p>Hi,</p> <blockquote> <blockquote> <p><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">charset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>utf-8<span class="token punctuation">"</span></span><span class="token punctuation">></span></span></code></p> </blockquote> <p>Das nützt "nicht immer". Meist halt nur beim lokalen Öffnen. Gibt es denn einen HTTP-Header?</p> </blockquote> <p>Und als Ergänzung: wird auch wirklich UTF-8 verwendet?<br> (es nützt nichts, auf ein rotes Auto draufzuschreiben "dieses Auto ist gelb" ...)</p> <p>cu,<br> Andreas</p> <div class="signature">-- <br> <a href="http://MudGuard.de/" rel="nofollow noopener noreferrer">Warum nennt sich Andreas hier MudGuard?</a><br> <a href="http://ostereier.andreas-waechter.de/" rel="nofollow noopener noreferrer">O o ostern ...</a><br> Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.<br> </div> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 10:01:10 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626095#m1626095 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626095#m1626095 <blockquote> <blockquote> <p><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">charset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>utf-8<span class="token punctuation">"</span></span><span class="token punctuation">></span></span></code></p> </blockquote> <p>Das nützt "nicht immer". Meist halt nur beim lokalen Öffnen. Gibt es denn einen HTTP-Header?</p> <p>print "Content-Type: text/html; charset=UTF-8\n\n";</p> <p>Oder ist gar sicher, dass nur die Daten aus der Datenbank verkorkst ankommen?</p> <p>Jörg Reinholz</p> </blockquote> <p>Die UTF-8 Kodierung funktioniert wohl ich kann auch kyrillische Buchstaben auf meiner Seite sehen.<br> Das hängt irgendwie mit MySQL zusammen da kommt nur latin1 raus.<br> Wenn ich das HTML chatset auf latin1 stelle sehe ich auch die umlaute die aus der MySQL Datenbank kommen korrekt.</p> <p>Danke für den tipp mit dem Header das hab ich auch gleich mal umgesetzt :)<br> Das Problem besteht aber natürlich immer noch</p> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 11:38:33 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626096#m1626096 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626096#m1626096 <blockquote> <p>Das hängt irgendwie mit MySQL zusammen da kommt nur latin1 raus.</p> </blockquote> <p>Soso. Welcher Meinung hinsichtlich der eingestellten Kodierung ist denn Perl?</p> <p>Die Ausgaben von</p> <pre><code class="block language-perl"><span class="token comment">#!/usr/bin/perl </span> <span class="token keyword">print</span> <span class="token string">"Content-Type: text/html; charset=UTF-8\n\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">"<pre>\n"</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span><span class="token punctuation">(</span>keys<span class="token punctuation">(</span><span class="token variable">%ENV</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">print</span> <span class="token string">"$ENV{$_}\n"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>könnten von erheblichen Interesse sein. Wie man dann eingreift hängt eventuell davon ab, ob Perl als CGI oder als Modul ausgeführt wird.</p> <p>Du musst das auch in der Umgebung testen, die das später laufende Perl-Skript hat. Es kann nämlich sein, dass Du als Benutzer ETWAS WIE LANG=de_DE.utf-8 i, Profil (~/.profile) stehen hat, der Apache(?) das Perl aber mit ETWAS WIE LANG=en_EN.cp1252 startet.</p> <p>Das hat die Folge, dass Perl im Terminal und Perl in der Apache-Umgebung verschiedene Ergebnisse liefern. Ich hoffe ja, Du benutzt nicht so was wie XAMPP.</p> <p>Jörg Reinholz</p> Ausgabe von %ENV Sun, 30 Nov 14 11:42:05 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626097#m1626097 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626097#m1626097 <pre><code class="block language-perl"><span class="token comment">#!/usr/bin/perl </span> <span class="token keyword">print</span> <span class="token string">"Content-Type: text/html; charset=UTF-8\n\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">"<pre>\n"</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span><span class="token punctuation">(</span>keys<span class="token punctuation">(</span><span class="token variable">%ENV</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">print</span> <span class="token string">"ENV{$_}:\t$ENV{$_}\n"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> Ausgabe von %ENV Sun, 30 Nov 14 12:25:20 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626098#m1626098 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626098#m1626098 <blockquote> <pre><code class="block language-perl"></code></pre> </blockquote> <p>#!/usr/bin/perl</p> <blockquote> <p>print "Content-Type: text/html; charset=UTF-8\n\n";</p> <p>print "<pre>\n";<br> foreach(keys(%ENV)) {<br>   print "ENV{$<em>}:\t$ENV{$</em>}\n";<br> }</p> </blockquote> <pre><code class="block"> > > Hier die Ausgaben... von char Kodierung seh ich da allerdings nichts. ENV{SCRIPT\_NAME}: /cgi-bin/test.pl ENV{SERVER\_NAME}: XXXXX.de ENV{SERVER\_ADMIN}: webmaster@XXXXX.de ENV{HTTP\_ACCEPT\_ENCODING}: gzip, deflate ENV{HTTP\_CONNECTION}: keep-alive ENV{REQUEST\_METHOD}: GET ENV{HTTP\_ACCEPT}: text/html,application/xhtml+xml,application/xml;q=0.9,\*/\*;q=0.8 ENV{SCRIPT\_FILENAME}: /home/XXXXX/public\_html/cgi-bin/test.pl ENV{CONTEXT\_PREFIX}: /cgi-bin/ ENV{REQUEST\_SCHEME}: http ENV{SERVER\_SOFTWARE}: Apache ENV{QUERY\_STRING}: ENV{REMOTE\_PORT}: 45342 ENV{HTTP\_USER\_AGENT}: Mozilla/5.0 (X11; Linux x86\_64; rv:33.0) Gecko/20100101 Firefox/33.0 ENV{SERVER\_PORT}: 80 ENV{SERVER\_SIGNATURE}: ENV{HTTP\_ACCEPT\_LANGUAGE}: en-ca ENV{REMOTE\_ADDR}: 5.147.206.238 ENV{CONTEXT\_DOCUMENT\_ROOT}: /home/XXXXX/public\_html/cgi-bin/ ENV{SERVER\_PROTOCOL}: HTTP/1.1 ENV{PATH}: /usr/local/bin:/usr/bin:/bin ENV{REQUEST\_URI}: /cgi-bin/test.pl ENV{GATEWAY\_INTERFACE}: CGI/1.1 ENV{SERVER\_ADDR}: 198.30.107.43 ENV{DOCUMENT\_ROOT}: /home/XXXXX/public\_html ENV{HTTP\_HOST}: XXXXX.de ENV{UNIQUE\_ID}: VHsL4MMeaysADlSBdrUAAABP </code></pre> Perl / MySQL Kodierungsprobleme Sun, 30 Nov 14 11:53:18 Z https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626100#m1626100 https://forum.selfhtml.org/self/2014/nov/28/perl-mysql-kodierungsprobleme/1626100#m1626100 <p>Hallo,</p> <blockquote> <p>(es nützt nichts, auf ein rotes Auto draufzuschreiben "dieses Auto ist gelb" ...)</p> </blockquote> <p>(naja, wenn du es mit gelber Farbe machst und sowohl groß genug als auch fett genug...</p> <p>Gruß<br> Kalk)</p>