UTF-8 Tools

Zur Vorstellung von Komponenten und Units für Lazarus

UTF-8 Tools

Beitragvon theo » 21. Feb 2009, 23:53 UTF-8 Tools

Habe hier mal meine "gesammelten Werke" zu Unicode und UTF-8 in ein Package gelegt:
http://www.theo.ch/lazarus/utf8tools.zip

Demos sind dabei. Man muss sich aber ein bisschen mit dem Quellcode befassen.
Nur auf die Buttons klicken ist nicht so unterhaltsam.

Es gibt im Wesentlichen:

Eine Unit utf8scanner.pas: Ähnlich wie hier auch schon mal vorgestellt, aber etwas verbessert.
Eine Unit character.pas: Diese funzt ähnlich wie bei D2009. Mit der TCharacter Klasse kann man Informationen über Code Points erhalten.
Eine Unit charencstreams.pas. Dient zum Laden und Speichern von Unicode und Ansi Formaten in z.B. ein TMemo

Falls sich das jemand anschauen möchte und Fragen hat: fragen!

Das Ganze würde ich als Beta bezeichnen. Kann also noch Bugs aufweisen.
theo
 
Beiträge: 8053
Registriert: 11. Sep 2006, 18:01

Beitragvon mschnell » 22. Feb 2009, 09:19 Re: UTF-8 Tools

Klasse !

-Michael
mschnell
 
Beiträge: 3216
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon af0815 » 23. Jun 2015, 09:42 Re: UTF-8 Tools

Hallo Theo,

ich bekomme bei den UTF8Tools (aktuell heruntergeladen) folgende Hinweise:

charencstreams.pas(206,21) Warning: Symbol "UTF16ToUTF8" is deprecated: "Use the function in LazUTF8 unit"
utf8scanner.pas(247,13) Warning: Symbol "UTF8CharacterToUnicode" is deprecated: "Use the function in LazUTF8 unit"
utf8scanner.pas(280,34) Warning: Symbol "UnicodeToUTF8" is deprecated: "Use the function in LazUTF8 unit"

ist dir das bekannt, kann man das langfristig ignorieren ?

Andreas (aka af0815)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3414
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon theo » 23. Jun 2015, 10:08 Re: UTF-8 Tools

af0815 hat geschrieben:ist dir das bekannt, kann man das langfristig ignorieren ?

Ist im Moment eine Umleitung auf eben dies.

Z.B: in LCLProc:
Code: Alles auswählen
function UTF16ToUTF8(const S: UTF16String): AnsiString;
begin
  Result := LazUTF8.UTF16ToUTF8(S);
end;   
 


Kann ich bei Gelegenheit mal ändern, aber das ist z. Zt. kein Problem.

P.S. Die Ersetzung ist auch sehr einfach. Es muss nur überall in den "uses" LCLProc durch LazUTF8 ersetzt werden.
theo
 
Beiträge: 8053
Registriert: 11. Sep 2006, 18:01

Beitragvon theo » 23. Jun 2015, 12:25 Re: UTF-8 Tools

OK, ist erledigt.
theo
 
Beiträge: 8053
Registriert: 11. Sep 2006, 18:01

Beitragvon af0815 » 23. Jun 2015, 12:42 Re: UTF-8 Tools

THX Theo,

perfekt. Keine 'Warnings' mehr.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3414
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon BrunoT » 9. Feb 2016, 07:45 Re: UTF-8 Tools

Hallo Theo,

ich möchte unter Linux Ansi - RTF - Dateien schreiben, Ich bekomme aber nur UTF8- Dateien
Im Memo habe ich UTF8- codierten Text und benutze die Unit charencstreams
Code: Alles auswählen
 
       Var
        fCES: TCharEncStream;
.....
        fCES := TCharEncStream.Create;
        fCES.UniStreamType:=ufANSI;
        fCES.UTF8Text:=memo.Text;
        fCES.SaveToFile(SaveDialog1.FileName);
        memo.Lines.LoadFromFile(SaveDialog1.FileName);
 


Was mache ich falsch? :evil:

Danke im Voraus
Code: Alles auswählen
 
for i:=1 to n do
SummeUnsinn := SummeUnsinn + Unsinn[i];
 
BrunoT
 
Beiträge: 9
Registriert: 24. Jun 2015, 20:12
OS, Lazarus, FPC: Mint Linux 17.3 | noch Win10 | L 1.4.4 | FPC 2.6.4 | 
CPU-Target: 64Bit
Nach oben

Beitragvon theo » 9. Feb 2016, 10:20 Re: UTF-8 Tools

BrunoT hat geschrieben:Was mache ich falsch? :


Es fehlt die gewünschte Zielkodierung.

Code: Alles auswählen
        fCES := TCharEncStream.Create;
        fCES.UniStreamType:=ufANSI;
        fCES.ANSIEnc:='ISO-8859-1'; //<---
        fCES.UTF8Text:=memo.Text


Eine Liste der möglichen Werte erhältst du mit:

Code: Alles auswählen
  GetSupportedANSIEncodings(Memo.Lines);   
theo
 
Beiträge: 8053
Registriert: 11. Sep 2006, 18:01

Beitragvon BrunoT » 9. Feb 2016, 17:02 Re: UTF-8 Tools

Danke für die schnelle Antwort :?

Werde ich gleich mal testen.

...

Kaum macht man es richtig, funktioniert es auch!
Code: Alles auswählen
 
for i:=1 to n do
SummeUnsinn := SummeUnsinn + Unsinn[i];
 
BrunoT
 
Beiträge: 9
Registriert: 24. Jun 2015, 20:12
OS, Lazarus, FPC: Mint Linux 17.3 | noch Win10 | L 1.4.4 | FPC 2.6.4 | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Units/Komponenten



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
porpoises-institution
accuracy-worried