Thursday, July 29th 2010, 1:33pm UTC+2

You are not logged in.

  • Login
  • Register

geist

Beginner

1

Saturday, February 23rd 2008, 1:21pm

ming & Umlaute / Sonderzeichen

Sei gegrüsst, Gemeinde,

ich dachte, die mir gestellte Aufgabe sein keine allzugrosse Herausforderung. Und ich hab mich schon gefreut, dass alles so einfach funktioniert hat: Ein Text soll einfach von rechts nach links durch den Bildschirm laufen.

Und dann der Knaller: Im Text sollen natürlich auch Umlaute und Sonderzeichen dargestellt werden. Und nichts geht mehr.

Nach jetzt wenigstens drei Tagen Googeln und dem Testen aller möglichen und unmöglichen Varianten von utf8_encode(), mb_convert_encoding(), urlen- und decode(), bin ich mit Latein und Nerven am Ende.

Hat irgendwer eine Idee, wie folgendes zum Laufen zu bringen ist:

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$fontDir "fonts";
$movieWidth "400";
$movieHeight "40";

$m = new SWFMovie();
$m->setDimension($movieWidth,$movieHeight);
$m->setBackground(0,0,0);

$font = new SWFFont($fontDir."/Techno.fdb");
$text = new SWFText();
$text->setFont($font);
$text->setColor(255,255,255);
$text->setHeight(20);
$viewText "öäüÖÄÜ+ß";
$textWidth $text->getWidth($viewText);
$text->addString($viewText);
$text->moveTo(0,0);

$p = new SWFSprite();
$i $p->add($text);
$i->setDepth(1);
$p->nextFrame();

$i $m->add($p);
$i->setDepth(1);
$i->moveTo($movieWidth,30);
$i->setName("box");


$m->add(new SWFAction("
box._x -= 3;
if (box._x <= -$textWidth) {
    box._x = $movieWidth;
}
"));
$m->nextFrame();
$m->add(new SWFAction("prevFrame(); play();"));
$m->nextFrame();

header('Content-type: application/x-shockwave-flash');
$m->output();


Gruss

Geist
  • Go to the top of the page

undefined

Super Moderator

Posts: 4,248

Location: Germany

2

Saturday, February 23rd 2008, 1:25pm

Das ist kein Programm Problem sondern ein browser Problem.
Sende mit header() die Kodierung ;)
Wenn dann immer noch das Problem besteht ist dein Font nicht für Umlaute geeignet.
Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
PHP Katepart - Speichenrechner - .htpasswd - RPM XDG Tool - Kcmnvview - QTidy
  • Go to the top of the page

geist

Beginner

3

Saturday, February 23rd 2008, 6:00pm

Dank für die schnelle Antwort. Allein das führt noch nicht zum Erfolg.

header('Content-type: application/x-shockwave-flash,charset=UTF-8');
bringt keinen Erfolg.

Austauschen der Schrift bringt keinen Erfolg... btw: Gibt es eine Möglichkeit zu überprüfen, ob eine .fdb-Schrift Umlaute darstellen kann oder eventuell kaputt ist?
Oder kann man sich irgendwo eine Schrift herunterladen, die mit Sicherheit Umlaute darstellen kann?

Gruss

Geist
  • Go to the top of the page

undefined

Super Moderator

Posts: 4,248

Location: Germany

4

Saturday, February 23rd 2008, 6:08pm

Die richtige Schreibweise machts ;)

PHP Source code

1
header"Content-Type: text/html; charset=utf-8" );

Zum prüfen ja, unter KDE kcharselect aufrufen.
Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
PHP Katepart - Speichenrechner - .htpasswd - RPM XDG Tool - Kcmnvview - QTidy
  • Go to the top of the page

geist

Beginner

5

Saturday, February 23rd 2008, 8:57pm

Möcht mich nochmal herzlich bedanken, für die Hilfe.

Es hat sich letztendlich herausgestellt, dass die verwendeten Schriften keine Umlaute darstellen können. (obwohl kcharselect anderes behauptet...)

Als da wären ua.:
Nimbus Sans L.fdb (arial-klon)
Techno.fdb

Wenn gewünscht, stell ich gerne eine Liste funktionierender Schriften (so ich einige getestet hab), hier ein.

Gruss

Geist

This post has been edited 1 times, last edit by "geist" (Feb 23rd 2008, 8:58pm)

  • Go to the top of the page