AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Escape Sequenz nach Unicode

Ein Thema von SittingDuck · begonnen am 15. Jan 2012 · letzter Beitrag vom 16. Jan 2012
Antwort Antwort
SittingDuck

Registriert seit: 11. Jan 2006
Ort: Leverkusen
159 Beiträge
 
Delphi 2010 Professional
 
#1

Escape Sequenz nach Unicode

  Alt 15. Jan 2012, 19:23
Hallo zusammen.

Ich habe eine Textdatei voll mit Unicode Escape-Sequenzen die alle z.B. so ausehen: 'U+1F618', 'U+1F604' ...
Nun möchte ich diese als Unicode-Zeichen in eine Variable einlesen. Das Ergebnis sollte dann dasselbe sein wie:
Code:
var s: string;

s := UTF8.Encode(#$01F618);
Ist warscheinlich ganz einfach, aber ich komme nicht dauf ...
Besten Dank ...
Ciao ... SittingDuck
iPhone Backup und mehr: iTwin v3.9 Beta ... Alternative Startleiste: Launcher v3.8 !
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: Escape Sequenz nach Unicode

  Alt 15. Jan 2012, 21:57
Scanne mit einen 7-Zeichen großen Fenster über den String. Immer wenn das Muster im Fenster erscheint, schmeißt du den Inhalt weg und gibst das passendende Zeichen im Ausgabestring aus.

Könnte funktionieren
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.348 Beiträge
 
Delphi 12 Athens
 
#3

AW: Escape Sequenz nach Unicode

  Alt 15. Jan 2012, 22:07
UTF8Decode kennt keine Surrogates, also kannst du damit keine Zeichen über #$FFFF dekodieren.





Ach ja, wie wäre es, wenn du dir die Parameter und Rückgabewerte ansiehst?
Der Rückgabewert paßt also nicht zur Variable.
Delphi ab 2009 (also auch dein 2010) wandelt hier das UTF8 wieder zurück in Unicode.

UTF8.Encode liefert UFT8 zurück und kein Unicode (UTF8String und nicht String/UnicodeString).

Also abgesehn davon, daß dieser Unicode-Bereich nicht umgewandelt werden kann, dann wäre, selbst wenn es ginge, alles umsonst.
Unicode > UTF8 > Unicode
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (15. Jan 2012 um 22:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

AW: Escape Sequenz nach Unicode

  Alt 15. Jan 2012, 22:20
Naja, wenn man alle Zeichen als UTF-16 Zeichen ausgegibt, kann man dann den kompletten Ausgabestring in das konvertieren lassen, was man braucht.
  Mit Zitat antworten Zitat
SittingDuck

Registriert seit: 11. Jan 2006
Ort: Leverkusen
159 Beiträge
 
Delphi 2010 Professional
 
#5

AW: Escape Sequenz nach Unicode

  Alt 15. Jan 2012, 22:27
Hmm ... komisch
Code:
s := UTF8.Encode(#$01F618);
funktioniert ja und packt mir das richtige Unicode Zeichen in die Variable, auch wenn der Compiler etwas meckert. Aber so kann ich ja nicht mit den Strings aus der Textdatei arbeiten. Was ich bräuchte wäre sowas:
Code:
var s: string;

s := '$01F618';
s := UTF8.Encode(Chr(s));
aber das ist nicht dasselbe wie oben.
Ciao ... SittingDuck
iPhone Backup und mehr: iTwin v3.9 Beta ... Alternative Startleiste: Launcher v3.8 !
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Escape Sequenz nach Unicode

  Alt 15. Jan 2012, 22:32
Das geht mit StrToInt( '$01F618' );
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
SittingDuck

Registriert seit: 11. Jan 2006
Ort: Leverkusen
159 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Escape Sequenz nach Unicode

  Alt 15. Jan 2012, 22:44
Aber das geht ja in meinem Beispiel nur bis $FFFF

Code:
UTF8.Encode(Chr(StrToInt('$01F618')));
Also ich habe einen UTF8 codierten String, da steckt ein Symbol drin was der Sequenz U+1F618 entspricht. Wie finde ich das z.B. mit der Pos Funktion?
Ciao ... SittingDuck
iPhone Backup und mehr: iTwin v3.9 Beta ... Alternative Startleiste: Launcher v3.8 !
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz