Problem mit Zeichensatz und NotesStream

  • Hi zusammen,


    ich habe folgendes Problem:
    Ich wandle per Fremdprogramm z.B. Word-Dokumente in Textdateien um. Dies funktioniert auch prima, wenn ich diese im Notepad öffne, werden alle Zeichen korrekt dargestellt.
    Der Zeichensatz ist laut Hersteller UTF-8.


    Nur, wenn ich selbige Datei mit einem NotesStream öffne, bekomme ich statt den Sonderzeichen zwei Zeichen angezeigt (Unicode oder sowas).


    Quelltext:
    Set nstText = session.CreateStream
    Call nstText.Open("D:\Sonderzeichen.txt")
    Msgbox nstText.Charset '-> windows-1252
    sCont = nstText.Readtext
    Call nstText.Close
    Msgbox sCont


    Auch kein Erfolg, wenn ich z.B.
    Call nstText.Open("D:\Sonderzeichen.txt", "UTF-8") oder so
    nehm.


    Weiß jmd. Rat?


    Danke und Gruß,
    Appi

    • Offizieller Beitrag

    Welcher Carset kommt zurück, wenn Du mit
    Call nstText.Open("D:\Sonderzeichen.txt", "UTF-8")
    den Strem öffnest?


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hi Dirk,


    danke für deine Antwort, es kommt UTF-8 zurück, wird aber trotzdem falsch dargestellt, da kommen nur Balken in der Msgbox ...


    Noch was:
    Wenn ich die Datei mit
    Open "D:\Sonderzeichen.txt" For Input As fn
    öffne und mit
    l = Lof(fn)
    sCont = Input (l, #fn)
    (wobei l die Länge ist), wirds richtig dargestellt.


    Nur wie errechne ich jetzt wieder die Länge der Datei. Mit Lof()
    gings nicht ...

    • Offizieller Beitrag

    die bekommst Du mit
    FileLen ( "D:\Sonderzeichen.txt")


    Gruß
    Dirk

  • hm, das Script funzt aber auch nicht:


    l = Filelen("D:\Sonderzeichen.txt")
    Open "D:\Sonderzeichen.txt" For Input As fn
    sCont = Input (l, fn)
    Close fn
    Msgbox sCont


    sCont ist leer, die Dateigröße ist 48 ...

    • Offizieller Beitrag

    steht in l etwas anderes als 0?


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Habe alles nochmal gecheckt ...


    also ich lese die Datei jetzt Zeilenweise aus mit Input #


    Das gibt mir die richtigen Zeichen zurück.


    Das Problem mit Filelen und LOF() find ich aber interessant, da es die Anzahl in Bytes zurückgibt und nicht die Anzahl der Zeichen.


    Gruß,
    Appi