Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Bedeutung von \uxxxx in Strings
numpsy
myCSharp.de - Member



Dabei seit:
Beiträge: 231

Themenstarter:

Bedeutung von \uxxxx in Strings

beantworten | zitieren | melden

Hallo,

habe hier das innere einer einfachen funktion:


        public string getValue(object value)
        {
            if (this.format != null)
            {
                return string.Format(string.Concat(\ue003.\ue000("\uf3c4\uf38f\uf385", 62229), this.format, \ue003.\ue000("\uf693", 63214)), value);
            }
            else
            {
                return value.ToString();
            }
        }

die wie ich weiss, dass ist


        public string getValue(object value)
        {
            return format != null ? String.Format("{0:" + format + "}", value) : value.ToString();
        }

aber ich versuche es abzuleiten. also die \xyz -> seht ihr darin etwas wie hex, unicode etc?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von numpsy am .
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

Hallo numpsy

sollte UTF-8 sein.

gruß
Jack
numpsy
myCSharp.de - Member



Dabei seit:
Beiträge: 231

Themenstarter:

beantworten | zitieren | melden

und irgendein tool, welches es mir easy convertiert... einfach speichern unter geht nicht mit zb.: textpad
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo numpsy,

nimm den entstehenden C#-String und speichere ihn (per C#) in einer Datei.

herbivore
private Nachricht | Beiträge des Benutzers
numpsy
myCSharp.de - Member



Dabei seit:
Beiträge: 231

Themenstarter:

beantworten | zitieren | melden

@ herbivore
versteh kein wort?
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,
Zitat von JAck30lena
sollte UTF-8 sein.
Es müsste sich eher um (16 Bit-) Unicode handeln.
Eingeleitetz vom Prefix \u gefolgt von 2 Bytes (hexadezimal).

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
numpsy
myCSharp.de - Member



Dabei seit:
Beiträge: 231

Themenstarter:

beantworten | zitieren | melden

also unicode könnte stimmen... die fangen zumeist mit dem \u an...

nen conversion tools habe ich aber noch nicht gefunden
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,

da wirds nicht viel zu konvertieren geben:
Zitat
\ue003.\ue000("\uf3c4\uf38f\uf385", 62229)
bedeutet es existiert eine Klasse oder ein Objekt mit dem ungewöhnlichen Namen \ue003 und stellt eine Methode zur Verfügung, die den ebenso ungewöhnlichen Namen \ue000 trägt
Folgendes Konstrukt würde z.B. einen solchen Aufruf zulassen:

public class \ue003
{
  public static string \ue000(string input, int mod) { ... }
}
// Ja, sowas geht!!

Anhand des zweiten Parameters der Funktion (dem int-Wert) werden offenbar dann die Zeichen im übergebenen String nochmal verhackstückt, um das gewünschte Ergebnis zu erreichen.

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
numpsy
myCSharp.de - Member



Dabei seit:
Beiträge: 231

Themenstarter:

beantworten | zitieren | melden


internal sealed class \ue003
{
  public static string \ue000(string \ue000, int \ue000)
  {
    return string.Intern(\ue003.\ue002.\ue000.\ue000(\ue000, \ue000));
  }

  ...
}

gerade noch ein wenig im code gestöbert... die klasse gibt es wirklich...
es wurden also functionen und strings mit diesem \u.... codiert. zumindestens die strings sind rückholbar :-)

muss mal die rückgabewerte dieser krassen fct auslesen
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von numpsy am .
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1.346

beantworten | zitieren | melden

Sieht für mich sehr danach aus, als ob der Code obfuskiert wurde. Dann glaube ich nicht, dass der Urheber das erlaubt.(immerhin hat er den Code ja verschleiert)

Woher hast du den Code?
private Nachricht | Beiträge des Benutzers
Corpsegrinder
myCSharp.de - Member



Dabei seit:
Beiträge: 401

beantworten | zitieren | melden

Zitat von MarsStein
Zitat von JAck30lena
sollte UTF-8 sein.
Es müsste sich eher um (16 Bit-) Unicode handeln.
Eingeleitetz vom Prefix \u gefolgt von 2 Bytes (hexadezimal).

Sorry, aber das stimmt so nicht. UTF-8 bedeutet nicht, dass es eine Länge von 8-Bit hat. UTF-8 Zeichen können entweder normale 8 Bit Folgen sein, wo sie der ASCII Darstellung entsprechen, oder 2-4 Byte lange Ketten, die eine entsprechende Kodierung aufweisen. Alle Unicode Kodierungen können sämtliche Unicode Zeichen darstellen.

Moderationshinweis von herbivore (04.01.2011 - 10:20)

Wie sich weiter unten aufklärt, stimmte es eben doch so, wie MarsStein geschrieben hat. Daraus, dass hinter dem \u immer vier Hex-Ziffern stehen (müssen), sprich 16Bit, folgt, dass es sich um UTF-16 handelt. Das steht natürlich auch in der Doku.

private Nachricht | Beiträge des Benutzers
Floste
myCSharp.de - Member

Avatar #avatar-2376.jpg


Dabei seit:
Beiträge: 1.130
Herkunft: Norddeutschland

beantworten | zitieren | melden

Zitat
Sorry, aber das stimmt so nicht. UTF-8 bedeutet nicht, dass es eine Länge von 8-Bit hat. UTF-8 Zeichen können entweder normale 8 Bit Folgen sein, wo sie der ASCII Darstellung entsprechen, oder 2-4 Byte lange Ketten

Schon wahr, aber die standardteichen sind bei utf-8 eben 1 byte lang und bei utf-16 eben 2 bytes lang. Und wie schon erwähnt wurde folgen auf \u zwei bytes. Daher ist utf16 eindeutig treffender.
Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!
private Nachricht | Beiträge des Benutzers
Corpsegrinder
myCSharp.de - Member



Dabei seit:
Beiträge: 401

beantworten | zitieren | melden

Die Standardzeichen in UTF-16 beginnen mit 00 gefolgt von der ASCII Darstellung. Hier beginnt aber keine Folge mit 00. Also entweder sehe ich hier etwas komplett falsch, oder es sind merkwürdige Zeichen.
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,
Zitat von Corpsegrinder
Sorry, aber das stimmt so nicht. UTF-8 bedeutet nicht, dass es eine Länge von 8-Bit hat.
Das hat ja auch keiner behauptet :)
ja, es sind merkwürdige Zeichen, und ja, ich weiß auch, daß UTF-8 wie UTF-16 ein Multibyte-Format ist. Der Unterschied ist aber, daß UTF-16 immer 2 Byte lange Zeichen hat, und UTF-8 variabel 1-3 Byte lange Zeichen.
Die Notation mit \u beschreibt aber ein UTF-16 Zeichen, also immer genau 2 Byte.
Siehe auch Backslash nicht escapen in einem String?

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Corpsegrinder
myCSharp.de - Member



Dabei seit:
Beiträge: 401

beantworten | zitieren | melden

Ah, alles klar, danke für die Aufklärung.
private Nachricht | Beiträge des Benutzers