Fragezeichen anstatt Umlaute

arraybreak

Erfahrenes Mitglied
Hi All,

habe gerade ein Problem mit den Umlauten, ich versuche ein RSS-Feed in eine Seite einzubauen und anstatt Umlaute kommen nur Fragezeichen.

PS: Wie kann ich machen dass der Text nur ca. höchstens 30 Zeichen ist und danach abbricht?

Hier der Code: Was mache ich falsch?
PHP:
<?php
define('MAGPIE_CACHE_DIR', 'cache');
define('MAGPIE_CACHE_AGE', '600');
require_once('rss_fetch.inc');
$url = 'http://feeds.n24.de/n24/wirtschaft_boerse?format=xml';

if ( $url ) {
$num_items = 5;
$rss = fetch_rss( $url );
$items = array_slice($rss->items, 0,$num_items);
echo $rss->channel['title'];}

echo "<ul class='list-7'>";
foreach ($items as $item) {
$href = $item['link'];
$title = $item['title'];
echo "<li><a href=$href target='_blank'>$title</a></li>";}
echo "</ul>";
?>

Gruß arraybreak
 
Zuletzt bearbeitet:

arraybreak

Erfahrenes Mitglied
ich habe auch bereits in die Datei diese zeile eingeben, bringt aber leider nichts

HTML:
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
 

ComFreek

Mod | @comfreek
Moderator
Probiere auch mal folgendes (ganz am Anfang einfügen!):
PHP:
header("Content-Type: text/html; charset=utf-8");
 

arraybreak

Erfahrenes Mitglied
Probiere auch mal folgendes (ganz am Anfang einfügen!):
PHP:
header("Content-Type: text/html; charset=utf-8");

Geht auch nicht, kriege folgende Fehlermeldung:

HTML:
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\wp-includes\class.wp-styles.php:92) in D:\xampp\htdocs\wp-content\themes\design\rss_feeds.php on line 2
 

ComFreek

Mod | @comfreek
Moderator
Du solltest diese Funktion bevor irgendwelchen Ausgaben via echo(), var_dump(), ... aufrufen.

Also einfach in der Datei als erstes folgendes schreiben:
PHP:
<?php
header("Content-Type: text/html; charset=utf-8");  
?>
<!-- Restlicher Code! -->
 

arraybreak

Erfahrenes Mitglied
Du solltest diese Funktion bevor irgendwelchen Ausgaben via echo(), var_dump(), ... aufrufen.

Also einfach in der Datei als erstes folgendes schreiben:
PHP:
<?php
header("Content-Type: text/html; charset=utf-8");  
?>
<!-- Restlicher Code! -->


Das selbe Problem ;)


Wie kann ich in meine Zeile (die unten jetzt eingefügt ist) die das ausgibt den Befehl "htmlentities" einfügen****?

PHP:
echo "<li><a href=$href target='_blank'>$title</a></li>";}
 
Zuletzt bearbeitet:

arraybreak

Erfahrenes Mitglied
Problem gefunden! In der Datei "rss_fetch.inc" war in dieser Zeile die "ISO-8859-1" Codierung anstatt dem "UTF-8" drin :D

PHP:
    if ( !defined('MAGPIE_OUTPUT_ENCODING') ) {
        define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
    }


Das selbe Problem ;)
 

chmee

verstaubtes inventar
Premium-User
Wenn Du Daten von fremden Seiten holst, hast Du so einige Schwachstellen.

(A) Wie liefert die Seite die Daten an.
(B) Wie liest Du sie aus und wie verarbeitest Du sie.
(C) Wie gibst Du sie aus.
(D) Wie will der Browser die Seite anzeigen.

(Allein, dass Dein php-Sourcecode, also die Datei, anstatt in UTF8 in ISO8859-1 kodiert ist, bringt schon Probleme mit sich. Da reicht nicht die Header-Definition.)

In jedem der Punkte könnte der Fehler stecken.
mfg chmee
 

Neue Beiträge