Codepage Encoding

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Wolfy.

    Codepage Encoding

    Neu

    Hallo Zusammen,

    ich mal wieder.

    Ich möche eine Codeseitenauswahl zur Verfügung stellen.
    Gespeichert in einer Datatable.
    Mein Ansatz über Name als String.
    Von mir aus auch als Integer(o.ä.) über Nummer.

    Nur wenn ich die Codepage auf default setzte bekomme ich bei Abfrage mit .tostring = system.text.SBSCCodePageEncoding.
    Mit Abfrage .Encoding.Name =Westeuropäisch (Windows).

    Was verwenden und wie mit dem Wert die Codepage setzen?

    Bitte einen Ansatz, mir raucht der Schädel.

    Vielleicht habe ich auch nicht systematisch genug gesucht.

    LG
    Wolfy ?(

    Neu

    @Wolfy Was soll mit der ausgewählten CodePage passieren?
    Wenn Du Dein Programm mehrsprachig auslegen willst, schau mal hier rein:
    Programme mehrsprachig erstellen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Neu

    Hi Rod,

    ich brauche die Codepage für den Textimport von txt Dateinen (damit man mit der Codierung spielen kann, damit die Zeichen richtig rüber kommen.

    Mein Code : Dim Laden As New IO.StreamReader(varFileName, Codeseite)

    Hast du einen Ansatz?

    LG
    Wolfy

    Neu

    Wolfy schrieb:

    Hast du einen Ansatz?
    Arbeite mit Encoding.
    Lies dier Datei als Byte-Array ein und konvertiere die Bytes per Encoding in Deinen String.

    VB.NET-Quellcode

    1. Dim bytes() As Byte = {&H6B, &H65, &H79, &H73, &H2E, &H6B, &H65, &H79} ' Deine Bytes
    2. Dim enc = System.Text.Encoding.GetEncoding(437) ' Dein Encoding
    3. Dim txt = enc.GetString(bytes)
    4. MessageBox.Show(txt)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Neu

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.Text
    3. Imports System.IO
    4. ...
    5. ''' 'Nur für » nicht Standard NET-Core Codepages « erforderlich
    6. ''' NET-Core Standard CPs: Ascii, UTF8, UTF16 (LE/BE), UTF32 (LE/BE), Iso-8859-1(28591)
    7. 'Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)
    8. Dim Laden As String = File.ReadAllText(path, encoding.default) 'Cp1252 bei Framework, UTF8 bei Core
    9. 'encoding.UTF8 » UTF-8 -- oder encoding.getencoding(65001)
    10. 'encoding.Unicode » UTF-16 LE
    11. 'encoding.getencoding(850) » OEM (DOS) CP850
    12. 'encoding.getencoding(1254) » Ansi türkisch
    13. 'encoding.getencoding(1252) » Ansi westlich


    Codepage-Übersicht
    learn.microsoft.com/de-de/wind…ntl/code-page-identifiers

    Neu

    Ich wurde falsch verstanden, aber Rod hat mich auf den Weg gebracht.

    Mit folgendem Code habe ich mein Vorhaben kontrolliert.

    VB.NET-Quellcode

    1. ​ Debug.Write("Name ")
    2. Debug.Write("Codepage ")
    3. Debug.WriteLine("Headername ")
    4. Codeseite = System.Text.Encoding.Default
    5. Debug.Write(Codeseite.EncodingName)
    6. Debug.Write(Codeseite.CodePage.ToString)
    7. Debug.WriteLine(Codeseite.HeaderName)
    8. Dim sas As Integer
    9. sas = 1252
    10. Codeseite = System.Text.Encoding.GetEncoding(sas)
    11. Debug.Write(Codeseite.EncodingName)
    12. Debug.Write(Codeseite.CodePage.ToString)
    13. Debug.WriteLine(Codeseite.HeaderName)
    14. Codeseite = System.Text.Encoding.UTF32
    15. Debug.Write(Codeseite.EncodingName)
    16. Debug.Write(Codeseite.CodePage.ToString)
    17. Debug.WriteLine(Codeseite.HeaderName)
    18. sas = 12000
    19. Codeseite = System.Text.Encoding.GetEncoding(sas)
    20. Debug.Write(Codeseite.EncodingName)
    21. Debug.Write(Codeseite.CodePage.ToString)
    22. Debug.WriteLine(Codeseite.HeaderName)


    Man kann die Codepage über eine Integervariable setzen.
    Das war mein Ziel.

    Danke