Ascii und Ansii

  • VB6

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von -([m3rLiN])-.

    Ok, die seite is ja interessant, aber weitergebracht sie mich nich.

    Was ist Ansii und was is Ascii und wie kann ich zeichen von Ansii in Ascii und umgekehrt umwandeln.
    (ich brauche also sowas wie chr(X) nur für die "Andere" Zeichentabelle)

    Nochwas was für eine Zeichentabbelle gehe ich mit

    <pre>
    for i = 1 to 255
    list1.additem chr$(i) ' wofür steht das "$" ??
    next i
    </pre>

    durch??

    ich weiß, das is ziehmlich viel auf einmal...


    Gruß,

    m3rLiN
    mehr als ein LIPPER kann der Mensch kaum werden! :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „-([m3rLiN])-“ ()

    Das $ bedeutet einfach das ein String zurückgegeben wird.

    Chr$ gibt die ASCIANSI Tabelle zurück.

    ASCII = American Standard Code For Information Interchange

    ANSI ist der bekannteste Zeichenstandard für Personal Computer. Da er nur ein Byte zur Darstellung eines Zeichens erfordert, lassen sich in ihm insgesamt höchstens 256 Zeichen einschließlich der Interpunktionszeichen darstellen. Obwohl dies für die englische Sprache ausreicht, werden viele andere Sprachen nicht hinreichend unterstützt.

    In dem Zusammenhang ist UNICODE auch ganz interessant.

    Unicode ist ein Zeichenverschlüsselungsschema, das 2 Byte für jedes Zeichen verwendet. Die International Standards Organization (ISO) ordnet fast jedem Zeichen und jedem Symbol in jeder Sprache (und zusätzlich einigen zur späteren Verwendung reservierten Leerzeichen) eine Zahl von 0 bis 65.535 (216 - 1) zu. Unter allen 32-Bit-Versionen von Windows wird Unicode vom Component Object Model (COM), der Basis für OLE- und ActiveX-Techniken, verwendet. Unicode wird von Windows NT vollständig unterstützt. Obwohl Unicode wie DBCS aus Doppel-Byte-Zeichen besteht, sind ihre Verschlüsselungsschemata völlig verschieden.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Unknown“ ()

    Hallo,

    genau das meinte ich....

    Diese Begriffe werden mittlerweile so durcheinander gewirbelt, das keiner mehr weiß, was sie bedeuten.

    Also, nun mal meine Erklärung, um das Chaos perfekt zu machen.

    Der ASCII-Zeichensatz war im Ursprung nur ein 7-Bit-Zeichensatz (2^7=128 mögliche Codierungen), die ersten 32 Zeichen waren Steuerzeichen. Das reichte damals aus.

    Erst mit Einführung der PC's erweiterte IBM den ASCII-Zeichensatz um 1 Bit, so das das bequeme 8-Bit-Format entstandt (8 Bit = 1 Byte, zwei Hex-Zahlen liefern uns wieder dieses Byte, 256 Möglichkeiten). Dies war der Zeichensatz der unter MS-DOS benutzt wurde.

    Erst unter Windows wurde der ANSI-Zeichensatz benutzt (hat auch 8 Bit aber bestimmte Zeichen sind anders codiert, wer es ausprobieren mag, öffne unter DOS Edit und schreibe "Süßholz", abspeichern und unter Windows mit Notepad wieder öffnen, umgekehrt klappt das genau so)

    Unicode ist erst einmal der Gipfel der Genüsse (16 Bit liefern 65536 Möglichkeiten). Wer jemals bei einem Unicode-Truetypefont in die Eigenschaften sah, wird sich gewundert haben, diese "Teile" sind halt ein wenig größer wie die "normalen" Schriften.

    So genug der Fachsimpelei (sollte ich Fehler gemacht haben, sorry, aber so hatte ich es im Kopf gespeichert)

    Gruß Markus
    Spitze, hätten wa damit alles geklärt.

    Ansii Win und ascii Dos...

    Aber die Frage, wie ich den einen in den anderen übersetze, bleibt. (bzw. wie ich die Ascii tabelle durchgehen kann)


    ... der öffne unter DOS Edit und schreibe "Süßholz", abspeichern und unter Windows mit Notepad wieder öffnen, umgekehrt klappt das genau so...


    Wie das kommt is' klar. (DOS Ascii,win Ansii -> Ü und ß sin an unterschiedlichen Stellen in den Tabellen)

    Wie kann ich nun den in Ascii geschriebenen Text in Ansii übersetzen???


    gruß,


    m3rLiN
    mehr als ein LIPPER kann der Mensch kaum werden! :)
    Moment mal, ich glaub hier wird was durcheinander gebracht, der ASCII zeichensatz entspricht den ersten
    128 Zeichen des ANSI Zeichensatzes (0 - 127),
    und Chr$ hat einen Wert bereich von 0 - 255 (1 Byte) also gibt Chr$ den ASCIIANSI Zeichenesatz zurück, du brauchst also gar nix konvertieren Chr$ is die einizige Funktion die du benötigst !

    Und Merlin, es gibt kein ANSII, nur ANSI und ASCII,
    ANSI = American National Standards Institute
    ASCII = American Standard Code for Information Interchange

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Unknown“ ()

    Hallo,

    Also wenn man z.B unter DOS geschriebene Texte in Windows lesen möchte benutzt man einfach AnsiToAscii oder umgekehrt.

    Ich habe mal die beiden API's in Funktionen verpackt.

    Private Declare Function OemToCharA Lib "user32.dll" (ByVal _
    lpszSrc As String, ByVal lpszDst As String) As Long

    Private Declare Function CharToOemA Lib "user32.dll" (ByVal _
    lpszSrc As String, ByVal lpszDst As String) As Long

    Public Function AsciiToAnsi(strAscii As String) As String
    Dim strTMP As String
    strTMP = Space(Len(strAscii))
    CharToOemA strAscii, strTMP
    AsciiToAnsi = strTMP
    End Function

    Public Function AnsiToAscii(strAnsi As String) As String
    Dim strTMP As String
    strTMP = Space(Len(strAnsi))
    OemToCharA strAnsi, strTMP
    AnsiToAscii = strTMP
    End Function

    Private Sub Test()

    MsgBox "Windows-Text aus Notepad mit dem DOS-Editor Edit geöffnet" & vbCr & _
    "ANSI wird zu ASCII:" & vbCr & "Aus Süßholz wird " & AnsiToAscii("Süßholz")

    MsgBox "DOS-Text aus Edit mit dem Windows-Editor Notepad geöffnet" & vbCr & _
    "ASCII wird zu ANSI:" & vbCr & "Aus Süßholz wird " & AsciiToAnsi("Süßholz")

    End Sub


    Gruß Markus