Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
utf-8_decode kann nicht alle utf-8 zeichen?? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
utf-8_decode kann nicht alle utf-8 zeichen??


 
mael15
07-12-2005, 23:00 
 
hallo,
ich habe eine xml datei mit utf-8 codierung. ein satz darin auf kurdisch ist z.b. "Wxîşk û bira: yek bira şeş xwîşk". das problem ist, dass ich z.b. diesen satz nicht wieder fehlerfrei in html ausgegeben bekomme. mit uft8_decode() bekomme ich "Wxî?k û bira: yek bira ?e? xwî?k". einige zeichen scheint die funktion also nicht zu können. den dritten buchstaben (i mit dem dach) kann die funktion hingegen.

die ausgabe ist in ordnung, sobald ich ohne utf8_decode im browser den charset auf utf-8 stelle. das kommt aber nicht in frage, da andere teile der webseite ohne charset dargestellt werden müssen. den meta tag kann ich also auch nicht einsetzen.

im prinzip brauche ich das, was dreamweaver beim ändern der seiteneigenschaften mit der dokumentcodierung macht. dort werden ausnahmslos alle utf-8 zeichen umgewandelt. der obere satz ergibt dann "Wxîşk û bira: yek bira şeş xwîşk".

ich bin schon seit stunden am rumprobieren, komme aber nicht weiter.
hat jemand eine idee?

 
ghostgambler
07-12-2005, 23:04 
 
ob wohl nicht alle Zeichen die es in utf8 gibt auch in ISO vorhanden sind?

Mach die Seite komplett zu utf8 und schmeiß ISO raus...wenn du schon solch Zeichen verwendest/verwenden musst, wäre das ein guter Anlass ^^

 
mael15
07-12-2005, 23:14 
 
hi ghostgambler,
danke für deine antwort. leider ist meine seite recht komplex. das dilemma sieht man hier: http://www.feleknasuca.de/inhalte/vita.php5?lg=ku

die inhalte der biografie werden als einziges element der webseite aus einer xml datei geladen. stellt man im browser oder über den meta-tag im header die codierung auf utf-8, dann wird der text zwar korrekt dargestellt, aber links z.b. die überschrift "navigation" und andere dinge nicht mehr.

notfalls muss ich ansonsten in den sehr sauren apfel beißen und alle anderen fremdsprachigen inhalte per hand in utf-8 ändern und den meta-tag einbauen. bisher habe ich alles in einem mehrdimensionalen php array in iso gespeichert.
beispiel: 'willkommen' => array ('de' => 'Willkommen', 'tr' => 'Hoşgeldiniz', 'ku' => 'Hun bi xêr hatin')

 
ghostgambler
08-12-2005, 16:01 
 
Original geschrieben von mael15
hi ghostgambler,
danke für deine antwort. leider ist meine seite recht komplex. das dilemma sieht man hier: http://www.feleknasuca.de/inhalte/vita.php5?lg=ku
die Seite sieht bei mir unter ISO genauso aus wie unter UTF8 :confused: (Firefox 1.5)

 
mael15
08-12-2005, 16:06 
 
sorry, ghostgambler. der link zeigt das problem nicht mehr. das projekt musste dringend fertig werden und ich habe die daten nun nicht mehr aus der xml datei gelesen, sondern wie alle anderen daten auch aus einem php array.

die lösung würde mich natürlich nach wie vor interessieren. ich habe allerdings schon so viele stunden erfolglos im netz nach einer möglichkeit gesucht, dass ich schon nicht mehr daran glaube, dass es klappen könnte.

 
ghostgambler
08-12-2005, 16:59 
 
einfach mal probiert

echo htmlentities("Wxîşk û bira: yek bira şeş xwîşk", ENT_COMPAT, 'UTF-8');

???

[edit] der String sollte dein Beispiel oben sein....das Forum versucht da irgendwie die Zeichen zu HTML zu konvertieren! Oo,)

 
mael15
08-12-2005, 17:37 
 
hi ghostgambler,
der befehl htmlentities() wandelt leider nicht alle zeichen um. z.b. bleibt das "s mit dem haken drunter" im quelltext unverändert. ich teste immer mit folgenden dateien:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
</head>
<body>
<?php
$xml = simplexml_load_file('test.xml');
echo htmlentities($xml, ENT_COMPAT, 'UTF-8');
?>
</body>
</html>

-----------------------------------
test.xml:

<?xml version="1.0" encoding="utf-8"?>
<ku>Wxîşk û bira: yek bira şeş xwîşk</ku>

--------------------------------------

utf8_decode() liefert folgendes:
Wxî?k û bira: yek bira ?e? xwî?k


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:45 Uhr.