tag:forum.selfhtml.org,2005:/self Konvertierung in UTF-8 – SELFHTML-Forum 2012-02-01T10:41:44Z https://forum.selfhtml.org/self/2012/feb/1/konvertierung-in-utf-8/1539931#m1539931 blabla 2012-02-01T09:08:34Z 2012-02-01T09:08:34Z Konvertierung in UTF-8 <p>Hallo!</p> <p>Ich muss ein kleines Projekt auf UTF-8 umstellen da bestimme jQuery Plugins und Json verwendet werden sollen.</p> <p>Habe also die MySQL Tabellen, die Datenbankkommunikation, die Charset Einstellunge in den HTML Dokumenten, den Editor entsprechend umgestellt.</p> <p>Nachdem zuerst session_start() nicht mehr funktioniert hat, habe ich ergoogelt, dass ich die Datein als UTF-8 ohne BOM speichern muss.</p> <p>Jetzt stelle ich aber fest, dass diverse string-Funktionen ander reagieren.</p> <p>im folgenden Beispielt wird z.B. ö4 ausgegeben.</p> <pre><code class="block language-php"> <span class="token variable">$x</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"öä"</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token punctuation">(</span><span class="token function">substr</span><span class="token punctuation">(</span><span class="token variable">$x</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token function">strlen</span><span class="token punctuation">(</span><span class="token variable">$x</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Habe ich irgendwas vergessen umzustellen oder kann man das anders lösen?<br> Danke!</p> https://forum.selfhtml.org/self/2012/feb/1/konvertierung-in-utf-8/1539932#m1539932 suit spam.2011@rebell.at http://rebell.at/ 2012-02-01T09:14:43Z 2012-02-01T09:14:43Z Konvertierung in UTF-8 <blockquote> <p>Jetzt stelle ich aber fest, dass diverse string-Funktionen ander reagieren.</p> </blockquote> <blockquote> <p>im folgenden Beispielt wird z.B. ö4 ausgegeben.</p> <pre><code class="block language-php"></code></pre> </blockquote> <blockquote> <p>$x = "öä";</p> <p>echo (substr($x,0,2));<br>     echo strlen($x);</p> </blockquote> <pre><code class="block"> > Die meisten Stringfunktionen sind nicht für Multibyte-Codierungen geeignet - sie zählen Bytes - keine Zeichen. Österreich hat 10 Zeichen In UTF-8 sind es 10 Zeichen aber 11 Bytes In Latin-1 sind es 10 Zeichen und 10 Bytes > Habe ich irgendwas vergessen umzustellen oder kann man das anders lösen? Die meisten funktionen haben auch eine mb\_-Funktion (Multibyte) - also z.B. mb\_substr() - die Zählen dann richtig. </code></pre> https://forum.selfhtml.org/self/2012/feb/1/konvertierung-in-utf-8/1539933#m1539933 blabla 2012-02-01T09:25:04Z 2012-02-01T09:25:04Z Konvertierung in UTF-8 <blockquote> <p>Die meisten funktionen haben auch eine mb_-Funktion (Multibyte) - also z.B. mb_substr() - die Zählen dann richtig.</p> </blockquote> <p>Ahhh... Danke!</p> <pre><code class="block language-php"> <span class="token variable">$x</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"öä"</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token function">mb_substr</span><span class="token punctuation">(</span><span class="token variable">$x</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'utf-8'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token function">mb_strlen</span><span class="token punctuation">(</span><span class="token variable">$x</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'utf-8'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Funktioniert *freu*. Wenn man nun in der .htaccess 'AddDefaultCharset UTF-8' anführt erspart man sich auch die encoding Angaben. Richtig?</p> <p>Macht es dann auch Sinn alle Dateien auf UTF-8 zu konvertieren? Also auch Dateien die keine Ausgabe an den Browser bewirken (.htaccess, robots.txt,...)?</p> <p>Danke!</p> https://forum.selfhtml.org/self/2012/feb/1/konvertierung-in-utf-8/1539935#m1539935 suit spam.2011@rebell.at http://rebell.at/ 2012-02-01T09:40:47Z 2012-02-01T09:40:47Z Konvertierung in UTF-8 <blockquote> <p>Funktioniert *freu*. Wenn man nun in der .htaccess 'AddDefaultCharset UTF-8' anführt erspart man sich auch die encoding Angaben. Richtig?</p> </blockquote> <p>Prinzipiell ja - allerdings schadet es nicht, das ganze manuell</p> <blockquote> <p>Macht es dann auch Sinn alle Dateien auf UTF-8 zu konvertieren? Also auch Dateien die keine Ausgabe an den Browser bewirken (.htaccess, robots.txt,...)?</p> </blockquote> <p>robots.txt kannst du im Browser ausgeben :)</p> <p>Wenn es keine wirklich begründete Ausnahme gibt, machst du dir das Leben leichter, wenn du alles in UTF-8 hältst.</p> <p>Wordpress z.B. kann .htaccess-Files manipulieren (um das Rewriting automatisch zu konfigurieren) und Tools die robots.txt-Files automatisch erstellen und ändern gibts auch genug - ggf. machst du dir auch mal selbst etwas in diese Richtung - da ist es von Vorteil wenn du dir dann keine gedanken mehr über die Codierung machen musst und überall durchgängig UTF-8 verwendest.</p> https://forum.selfhtml.org/self/2012/feb/1/konvertierung-in-utf-8/1539934#m1539934 Gunnar Bittersmann selfhtml@bittersmann.de http://bittersmann.de/ 2012-02-01T09:41:05Z 2012-02-01T09:41:05Z Konvertierung in UTF-8 <p>@@blabla:</p> <p>nuqneH</p> <blockquote> <p>Macht es dann auch Sinn alle Dateien auf UTF-8 zu konvertieren? Also auch Dateien die keine Ausgabe an den Browser bewirken (.htaccess, robots.txt,...)?</p> </blockquote> <p>Darin kommen vermutlich ausschließlich ASCII-Zeichen (U+0000 bis U+007F) vor. Dann sind die Bytesequenzen in den Codierungen ISO-8859-x und UTF-8 (ohne BOM) exakt gleich.</p> <p>Qapla'</p> <div class="signature">-- <br> Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.<br> (Mark Twain) </div> https://forum.selfhtml.org/self/2012/feb/1/konvertierung-in-utf-8/1539936#m1539936 blabla 2012-02-01T10:41:44Z 2012-02-01T10:41:44Z Konvertierung in UTF-8 <p>Danke für alle Antworten!<br> Ich denke ich habe jetzt alles Notwendige beisammen!</p>