Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   nochmal: unicode in rtf - wer kann mir helfen! (https://www.delphipraxis.net/78429-nochmal-unicode-rtf-wer-kann-mir-helfen.html)

sancho1980 4. Okt 2006 22:19


nochmal: unicode in rtf - wer kann mir helfen!
 
hi
ich versuche die ganze zet herauszubekommen, wie ich einen zusammenhängenden text mit unicode-zeichen in eine rtf-datei bekomme.
schaut man sich den eintrag zu rtf bei wikipedia.org an, liest man folgendes:

Zitat:

If a Unicode escape is required, the control word \u is used, followed by a 16-bit signed decimal integer giving the Unicode codepoint number. For the benefit of programs without Unicode support, this must be followed by the nearest representation of this character in the specified code page. For example, \u1576? would give the Arabic letter beh, specifying that older programs which do not have Unicode support should render it as a question mark instead.
Okay, denk ich mir, dann nehm ich doch mal die Beispiel-rtf-Datei, die da angegeben ist, und füge statt dem vorgegeben Text ein einziges Zeichen in Unicode ein:

Zitat:

{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0
\u50
}
jetzt das ganze ins notepad einfügen und in ansi unter "test.rtf" speichern.
jetzt test.rtf mit wordpad öffnen und man sieht folgenden inhalt:

Delphi-Quellcode:
2
Soweit klappt es.
Wenn ich jetzt aber versuche mehrere Unicode-Zeichen hintereinander zu speicher, beispielsweise:

Zitat:

{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0
\u50\u50
}
Wenn ich das jetz als rtf-datei speichere und mit dem wordpad öffne, seh ich komischerweise folgenden text:

Zitat:

2u50
Wieso bekomm ich hier nicht zwei mal 2 hintereinander? Ich hab echt schon alles versucht, aebr alle Versuche, mehrere unicode-zeichen hintereinander zu speichern sind fehlgeschlagen, was mach ich falsch?

ich brauch das, weil ich nämlich ein prog schreiben muss, dass aus einer datebank unicode liest und das ganze nach einer bestimmten formatierung in rtf schreibt..da kann ich natürlich nicht bei jedem zeichen erst prüfen, ob es tatsächlich ein erweitertes zeichen ist, deswegen muss ich pauschal jedes zeichen so umständlich schreiben...

danke für eure hilfe,

martin

Christian Seehase 4. Okt 2006 22:34

Re: nochmal: unicode in rtf - wer kann mir helfen!
 
Moin Martin,

Du hast das hier nicht beachtet:

Zitat:

For the benefit of programs without Unicode support, this must be followed by the nearest representation of this character in the specified code page. For example, \u1576? would give the Arabic letter beh, specifying that older programs which do not have Unicode support should render it as a question mark instead.
Anders formuliert:
Bei Deiner Variante fehlt das Ersatzzeichen.

Probier's mal so:

{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0
\u0050?\u0050?
}

sancho1980 4. Okt 2006 23:21

Re: nochmal: unicode in rtf - wer kann mir helfen!
 
ok danke
das wars; hatt ich noch nicht ausprobiert :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz