Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Text wird nicht in File gespeichert wenn ein á darin vorkommt?

Text wird nicht in File gespeichert wenn ein á darin vorkommt?

JuMayr
Beiträge gesamt: 96

4. Okt 2013, 18:22
Bewertung:

gelesen: 1508

Beitrag als Lesezeichen
Hi zusammen,

ich habe folgendes Script (stark vereinfacht):

Code
var dateipfad = Folder.desktop + "/testdatei.txt"; 
var f = File( dateipfad );
f.open("w");
f.write("aniversári");
f.close();


Die Datei, die bei mir erzeugt wird ist LEER (0 byte).
Wenn ich das á herauslösche, dann klappt es.

Passiert sowohl auf dem Mac aus auch auf PC.
Ist das ein "bekanntest" Problem?
Habe ich irgendwo einen Denkfehler?

Gruß
Jürgen

Text wird nicht in File gespeichert wenn ein á darin vorkommt?

JuMayr
Beiträge gesamt: 96

4. Okt 2013, 18:27
Bewertung:

gelesen: 1504

Beitrag als Lesezeichen
jetzt wurde mein schönes böses Sonderzeichen umgewandelt...

Ich hänge mal eine kleine Datei an.
Für einen lokalen Test diesen Dateinamen kopieren und als Text bei f.write einfügen.

Nachtrag: Da es im Dateiupload auch umgewandelt wurde hier ein Link auf das Zeichen.

http://www.fileformat.info/info/unicode/char/301/index.htm

(Dieser Beitrag wurde von JuMayr am 4. Okt 2013, 18:35 geändert)

Anhang:
aniversa&#769 (23.9 KB)

Text wird nicht in File gespeichert wenn ein á darin vorkommt?

cwenet
Beiträge gesamt: 1139

4. Okt 2013, 18:44
Bewertung:

gelesen: 1480

Beitrag als Lesezeichen
Hallo Jürgen,

versuche bitte das vor write
f.encoding = "UTF-8";

Gruss
Christoph

Text wird nicht in File gespeichert wenn ein á darin vorkommt?

Martin Fischer
  
Beiträge gesamt: 12783

4. Okt 2013, 18:44
Bewertung:

gelesen: 1480

Beitrag als Lesezeichen
Hallo Jürgen,

versuch mal, die Datei als Unicode-Text zu encodieren:

Code
var dateipfad = Folder.desktop + "/testdatei.txt";  
var f = File( dateipfad );
f.open("w");
f.encoding = 'UTF8';
f.write("aniversári");
f.close();


Viele Grüße
Martin



(Dieser Beitrag wurde von Martin Fischer am 4. Okt 2013, 18:46 geändert)

Text wird nicht in File gespeichert wenn ein á darin vorkommt?

WernerPerplies
Beiträge gesamt: 2762

4. Okt 2013, 18:45
Bewertung:

gelesen: 1476

Beitrag als Lesezeichen
Hi,

codiere das Zeichen als "\u00E1" oder scheibe komplett "aniversaári",

Bei mir funktioniert es dann in beiden Fällen.

Einen schönen Tag wünscht

Werner Perplies
Praxisnahe Skript-Lösungen und Skript-Programmierung für Adobe InDesign
Aktuelles (Stand: 14.02.2024)
Kundenstimmen

Text wird nicht in File gespeichert wenn ein á darin vorkommt?

JuMayr
Beiträge gesamt: 96

4. Okt 2013, 18:46
Bewertung:

gelesen: 1474

Beitrag als Lesezeichen
Antwort auf [ Martin Fischer ] Hallo Jürgen,

versuch mal, die Datei als Unicode-Text zu encodieren:

Code
var dateipfad = Folder.desktop + "/testdatei.txt";  
var f = File( dateipfad );
f.encoding = 'UTF8'; <--- das war es :)
f.open("w");
f.write("aniversári");
f.close();




KNUTSCH:)

Text wird nicht in File gespeichert wenn ein á darin vorkommt?

Martin Fischer
  
Beiträge gesamt: 12783

4. Okt 2013, 18:47
Bewertung:

gelesen: 1471

Beitrag als Lesezeichen
Antwort auf: KNUTSCH:)


Ne, knutsch lieber den Christoph.
Der war schneller! ;-)

Ab ins Wochenende!

Viele Grüße
Martin


Text wird nicht in File gespeichert wenn ein á darin vorkommt?

WernerPerplies
Beiträge gesamt: 2762

4. Okt 2013, 19:01
Bewertung:

gelesen: 1441

Beitrag als Lesezeichen
Hallo Christoph,

UTF-8 wäre eigentlich die Defaulteinstellung, aber es ist sicherlich sicherer das Encoding mitzugeben.

Ergänzung:

Diese Funktion verwendet explizit UTF-8 als Standard:
Code
    /*bool*/function writeString2File(fileName, string2Write, encoding)  
{
try // writeString2File
{
var file = File (fileName);
if (file==null)
throw new Error("Konnte das Dateiobject nicht erzeugen: \n" + fileName);
if (encoding==null)file.encoding = "UTF-8";
else file.encoding=encoding;
if (!file.open("w"))
throw new Error("Konnte Datei nicht zum schreiben öffnen: \n" + fileName);
if (!(file.write(string2Write)))
throw new Error("Konnte Dateiinhalt nicht schreiben: \n" + fileName);
if (!(file.close()))
{
throw new Error("Konnte Datei nicht schließen: \n" + fileName);
}
return true;
}
catch (error) // writeString2File
{
throw error;
}
return false;
}
}


Einen schönen Tag wünscht

Werner Perplies
Praxisnahe Skript-Lösungen und Skript-Programmierung für Adobe InDesign
Aktuelles (Stand: 14.02.2024)
Kundenstimmen

(Dieser Beitrag wurde von WernerPerplies am 4. Okt 2013, 19:05 geändert)

Text wird nicht in File gespeichert wenn ein á darin vorkommt?

JuMayr
Beiträge gesamt: 96

4. Okt 2013, 19:56
Bewertung:

gelesen: 1388

Beitrag als Lesezeichen
Antwort auf [ cwenet ] Hallo Jürgen,

versuche bitte das vor write
f.encoding = "UTF-8";

Gruss
Christoph


Auch ein Knutsch..
Da erkennt man mal wieder den Unterschied zwischen einem Business Analysten der Code lesen kann und einen Entwickler der ihn schreiben kann.