tag:forum.selfhtml.org,2005:/selfKonvertierung in UTF-8 – SELFHTML-Forum2012-02-01T10:41:44Zhttps://forum.selfhtml.org/self/2012/feb/1/konvertierung-in-utf-8/1539931#m1539931blabla2012-02-01T09:08:34Z2012-02-01T09:08:34ZKonvertierung 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#m1539932suitspam.2011@rebell.athttp://rebell.at/2012-02-01T09:14:43Z2012-02-01T09:14:43ZKonvertierung 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#m1539933blabla2012-02-01T09:25:04Z2012-02-01T09:25:04ZKonvertierung 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#m1539935suitspam.2011@rebell.athttp://rebell.at/2012-02-01T09:40:47Z2012-02-01T09:40:47ZKonvertierung 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#m1539934Gunnar Bittersmannselfhtml@bittersmann.dehttp://bittersmann.de/2012-02-01T09:41:05Z2012-02-01T09:41:05ZKonvertierung 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#m1539936blabla2012-02-01T10:41:44Z2012-02-01T10:41:44ZKonvertierung in UTF-8<p>Danke für alle Antworten!<br>
Ich denke ich habe jetzt alles Notwendige beisammen!</p>