13. Mai 2016 10:35
TestFile.TEXTMODE := TRUE;
TestFile.WRITEMODE := TRUE;
TestFile.CREATE('C:\Temp\UTF8\Test.txt',TEXTENCODING::UTF8);
TestFile.WRITE(meinText); // siehe Kommentar unten
TestFile.CLOSE;
Onlinehilfe hat geschrieben:Optionally, you can specify the encoding on the file. By specifying the text encoding, you ensure that all the language-specific characters are represented correctly in Microsoft Dynamics NAV when you read data and write data.
13. Mai 2016 11:02
Natalie hat geschrieben:Ist Variable meinText leer oder enthält nur "einfache" Buchstaben wie "abc", dann wird die Datei mit Encoding = ANSI !!! abgespeichert
13. Mai 2016 11:06
Kowa hat geschrieben:Kann ich nicht bestätigen, meine erzeugte Datei mit Inhalt "abede" zeigt Notepad++ korrekt als UTF-8 an. (mit Build 44365)
13. Mai 2016 11:13
Customer1.GET('10000');
Customer2.GET('30000');
TestFile.TEXTMODE := TRUE;
TestFile.WRITEMODE := TRUE;
TestFile.CREATE('C:\Temp\UTF8_Test1.txt', TEXTENCODING::UTF8);
TestFile.WRITE(Customer1.Name);
TestFile.CLOSE;
TestFile.TEXTMODE := TRUE;
TestFile.WRITEMODE := TRUE;
TestFile.CREATE('C:\Temp\UTF8_Test2.txt', TEXTENCODING::UTF8);
TestFile.WRITE(Customer2.Name);
TestFile.CLOSE;
TestFile.TEXTMODE := TRUE;
TestFile.WRITEMODE := TRUE;
TestFile.CREATE('C:\Temp\UTF16_Test1.txt', TEXTENCODING::UTF16);
TestFile.WRITE(Customer1.Name);
TestFile.CLOSE;
TestFile.TEXTMODE := TRUE;
TestFile.WRITEMODE := TRUE;
TestFile.CREATE('C:\Temp\UTF16_Test2.txt', TEXTENCODING::UTF16);
TestFile.WRITE(Customer2.Name);
TestFile.CLOSE;
TestFile.CREATE('C:\Temp\UTF8_Test3.txt');
TestFile.CREATEOUTSTREAM(OStream);
StreamWriter := StreamWriter.StreamWriter(OStream);
StreamWriter.WriteLine(Customer2.Name);
StreamWriter.Close();
TestFile.CLOSE;
TestFile.CREATE('C:\Temp\UTF8_Test4.txt');
TestFile.CREATEOUTSTREAM(OStream);
StreamWriter := StreamWriter.StreamWriter(OStream, Encoding.UTF8);
StreamWriter.WriteLine(Customer2.Name);
StreamWriter.Close();
TestFile.CLOSE;
00000000h: 47 69 6C 64 65 20 4A 75 70 69 74 65 72 20 56 65 72 73 69 63 68 65 72 75 6E 67 73 20 41 47 0D 0A ; Gilde Jupiter Versicherungs AG..
00000000h: EF BB BF 47 69 6C 64 65 20 4A 75 70 69 74 65 72 20 56 65 72 73 69 63 68 65 72 75 6E 67 73 20 41 47 0D 0A ; Gilde Jupiter Versicherungs AG..
00000000h: 47 69 6C 64 65 20 4A 75 70 69 74 65 72 20 56 65 72 73 69 63 68 65 72 75 6E 67 73 20 41 47 0D 0A ; Gilde Jupiter Versicherungs AG..
00000000h: 47 69 6C 64 65 20 4A 75 70 69 74 65 72 20 56 65 72 73 69 63 68 65 72 75 6E 67 73 20 41 47 0D 0A ; Gilde Jupiter Versicherungs AG..
This constructor creates a StreamWriter with UTF-8 encoding without a Byte-Order Mark (BOM), so its GetPreamble method returns an empty byte array.
13. Mai 2016 11:20
PS: Habe den Test mit ASCII und ANSII als Vorgabe versucht.
- ANSI = encoding.GetEncoding(1252): Die Datei wird immer (sowohl mit NAV- als auch DotNetFunktion) im ANSI-Format erstellt
- ASCII = encoding.GetEncoding(850): Die Datei wird immer im ANSI-Format erstellt ....!!
13. Mai 2016 11:38
ASCII und ANSI sind nur zwei Kodierungen. ASCII, uralt, nimmt für die Zeichencodierung 7 Bit her, ANSI 8 Bit.Natalie hat geschrieben:Danke ... Ergibt der ASCII-Test damit für dich ebenfalls Sinn?
13. Mai 2016 11:43
13. Mai 2016 11:48
13. Mai 2016 12:23
SilverX hat geschrieben:Ich denke es wird heute nicht mehr unterschieden, ob das achte Bit genutzt wird oder nicht.
ASCII, uralt,
13. Mai 2016 14:25
Bei UTF-8 stellt sich das Problem der Byte-Reihenfolge zwar nicht, doch ein BOM am String- oder Dateianfang ist erlaubt, um die Verwendung von UTF-8 als Kodierung zu kennzeichnen.
24. Mai 2017 10:18
29. September 2017 15:21
Kowa hat geschrieben:Entweder hatte ich ein Cacheproblem, oder Notepad++ zeigt falsch an .