Neu Empfohlene Zeichenkodierung und Line-Endings für einen Editor unter Windows

JohnnyMcDoogle

Aktives Mitglied
14. Mai 2019
27
2
Hallo,

ich möchte gern ein Template verändern und habe vor, als Vorlage Evo zu benutzen. Ich würde gern von Euch wissen, welche Einstellungen zu
  • Line-Endings (LF vs. CRLF)
  • Zeichenkodierung (UTF-8 vs. ISO-8859-1 vs. Windows)
  • git core.autocrlf (true vs. false vs. input)
ich unter Windows (10 Pro) für einen Texteditor (in meinem Fall VS Code) für die Entwicklung von Templates (vielleicht auch Plugins) einstellen soll, bzw. wie was empfohlen wird.
Ich habe die Forumssuche, den Guide und die Docs bemüht, aber genau dazu nichts gefunden: falls ich etwas übersehen habe, würde ich mich über einen "Fingerzeig" freuen.

Vielen Dank im Voraus,
Johnny
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
519
Halle
Hallo,
im Shop-Core sind alle Dateien in UTF-8 mit LF als Line-Ending angelegt. core.autocrlf hängt davon ab, wie deine IDE Line-Endings behandelt und wie das ggfs. bei deinen Mitstreitern eingestellt ist.
 
  • Gefällt mir
Reaktionen: JohnnyMcDoogle

JohnnyMcDoogle

Aktives Mitglied
14. Mai 2019
27
2
Hallo FPrüfer,

vielen Dank für Deine zügige Antwort. Ich habe einen Mitstreiter, wir haben beide die selbe IDE unter Windows und die gleichen Settings. Unter localhost haben wir, wahrscheinlich durch falsche Line-Endings (CRLF war eingestellt), laut "Shopdateien-Check" modifizierte Dateien. Das wollen wir so natürlich nicht. Die Dateien sollen dann per SSH und git "nach oben" (Unixoide Umgebung mit Apache) übertragen werden. So weit zum Hintergrund. Hast Du da eine Empfehlung zu "core.autocrlf"?


Gruß,
Johnny
 

Anhänge

  • localhost.png
    localhost.png
    73,1 KB · Aufrufe: 15

fibergirl

Sehr aktives Mitglied
14. April 2016
829
253
Dazu auch mal eine Frage.
Ich habe Importdateien für die Ameise, z.B. Artikeltexte, die über die Wawi in den JTL- Shop sollen.
Mittelfristig ist da der JTL-Shop 5 mit Nova-Template angestrebt, soweit ich weiß verwendet der durchgehend UTF8.
Beim JTL-Shop 4 ist es mir unklar.

Die Importdateien haben Umlaute u.ä. teils in ANSI (eigentlich Windows), teils als HTML-Entities (wie ä )
Ich grüble darüber nach, ob und wohin ich diese umwandeln sollte.
Ich könnte auch alle Umlaut-HTML-Entities in ANSI wandeln und dann reines ANSI importieren, aber was ist mit dem Shop?
Oder alles gleich in UTF8 umcodieren für den Shop, aber was macht die WAWI dann damit?

Line-Endings bei den Templates sind natürlich eine andere Sache.
Aber Templates und Core-PHP in UTF8 und Artikeldaten in ANSI, kann das sein?
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
519
Halle
Hast Du da eine Empfehlung zu "core.autocrlf"?
Wenn eure Windows-IDE ganz normal LF als Zeilenende speichert und nicht still und heimlich überall ein CR/LF draus macht oder beim Öffnen von LF-Dateien alles in einer Zeile darstellt, dann braucht ihr für git kein explizites core.autocrlf setzen. Ansonsten sollte es auf "true" stehen. Siehe dazu auch: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_code_core_autocrlf_code
 
  • Gefällt mir
Reaktionen: JohnnyMcDoogle

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
519
Halle
Dazu auch mal eine Frage.
Ich habe Importdateien für die Ameise, z.B. Artikeltexte, die über die Wawi in den JTL- Shop sollen.
Mittelfristig ist da der JTL-Shop 5 mit Nova-Template angestrebt, soweit ich weiß verwendet der durchgehend UTF8.
Beim JTL-Shop 4 ist es mir unklar.
Die Wawi verwendet unabhängig vom Shop eine ISO-8859-x Kodierung. Das wird wohl auch noch mit Shop5 so sein, so dass alle Daten die von der Wawi zum Shop kommen bzw. vom Shop zur Wawi gesendet werden immer daran gebunden sind und entsprechend umkodiert werden müssen.
Die Importdateien haben Umlaute u.ä. teils in ANSI (eigentlich Windows), teils als HTML-Entities (wie ä )
Ich grüble darüber nach, ob und wohin ich diese umwandeln sollte.
Ich könnte auch alle Umlaut-HTML-Entities in ANSI wandeln und dann reines ANSI importieren, aber was ist mit dem Shop?
Oder alles gleich in UTF8 umcodieren für den Shop, aber was macht die WAWI dann damit?
Da in der ISO-8859-1 Kodierung, mit der Shop und Wawi kommunizieren, auch deutsche Umlaute darstellbar sind, würde ich dafür die native Darstellung empfehlen. Für alle anderen Sonderzeichen sollte nach Möglichkeit die Darstellung in HTML-Entities gewählt werden.

Aber Templates und Core-PHP in UTF8 und Artikeldaten in ANSI, kann das sein?
Alle Ausgaben die direkt über den Shop-Core erfolgen (z.B. Meldungen im Backend) sind im Shop4 in HTML-Entities kodiert, so dass es keine Kollisionen zwischen der Code-Kodierung (UTF-8) und der Ausgabe im HTML (ISO-8859-1) gibt. Deutsche Umlaute die von der Wawi in ISO-8859-1 gesendet werden, werden über eine Latin1-Kodierung in die DB geschrieben und auf dem gleichen Weg wieder ausgegeben, so dass hier Umlaute in Artikeltexten direkt möglich sind. Ab Shop5 ist dann innerhalb des Shops alles in UTF-8 und nur die Schnittstelle zur Wawi macht eine passende Umkodierung.
@JohnnyMcDoogle In Bezug auf Shop4 muss ich mich korrigieren. Die deutschen Mailtemplates (unter admin/mailtemplates/ger) sind nicht in UTF-8, sondern in ISO-8859-1 kodiert, sonst könnten dort keine Texte mit Umlauten hinterlegt und korrekt verschickt werden.
 

fibergirl

Sehr aktives Mitglied
14. April 2016
829
253
Herzlichen Dank @FPrüfer !

Dann werde ich mal voll auf ISO-8859-1 setzen und die Umlaute und einige Sonderzeichen (z.B. ß, µ) nativ darstellen, allein schon damit sie von der Suche gefunden werden können.
(Was ist mit dem Euro-Zeichen?).

Wenn der Shop dann irgendwann UTF-8 braucht, wird er es sich selbst umwandeln bzw. generieren.

Sorry fürs Kapern des Threads, aber vielleicht war es gar nicht so schlecht fürs allgemeine Verständnis ...
 

Xantiva

Sehr aktives Mitglied
28. August 2016
1.787
313
Düsseldorf
Wenn eure Windows-IDE ganz normal LF als Zeilenende speichert und nicht still und heimlich überall ein CR/LF draus macht oder beim Öffnen von LF-Dateien alles in einer Zeile darstellt, dann braucht ihr für git kein explizites core.autocrlf setzen. Ansonsten sollte es auf "true" stehen. Siehe dazu auch: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_code_core_autocrlf_code

Da möchte ich mal einhaken ...

Eine wichtige Frage dabei ist: Wie kommen die Daten auf den Webserver?

core.autocrlf = true bedeutet, dass die Dateien auf Windows-Systemen automatisch mit CrLf vorliegen. Werden diese Dateien auf den Linux-Server hochgeladen, sind sie "modifiziert".

Umgekehrt ist ein "Deployment" per git push in Produktivsysteme ist nicht zu empfehlen. Nicht nur die letzten Hacks von Github und Gitlab-Repositories basierten darauf, dass User so gearbeitet haben. Im Webroot sollte kein .git-Verzeichnis existieren!

Kleiner Auszug aus einem access_log:
Code:
xx.xx.xx.xx - - [02/Feb/2019:12:01:44 +0100] "GET /.git/HEAD HTTP/1.1" 404 162 "-" "Python-urllib/3.6"
xx.xx.xx.xx - - [03/Feb/2019:00:36:46 +0100] "GET /.git/HEAD HTTP/1.1" 404 162 "-" "Python-urllib/3.6"
xx.xx.xx.xx - - [09/Feb/2019:00:44:53 +0100] "GET /.git/HEAD HTTP/1.1" 404 162 "-" "Python-urllib/3.5"
xx.xx.xx.xx - - [23/Mar/2019:18:11:35 +0100] "HEAD /.git/config HTTP/1.1" 301 0 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0"
Webseiten werden nach Git-Repositories gescannt!

Wenn die Dateien über ein CI/CD-System per "Dateikopie" in den Webroot übertragen werden und das CI/CD-System mit "LF" arbeitet ist das ok, wenn aber auch mal die Dateien per FTP/SSH vom Windows-Rechner in den Webroot übertragen werden sollen, dann würde ich explizit mit
Code:
* text eol=lf
arbeiten!
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
519
Halle
Gute Frage! ISO-8859-1 kennt de facto kein Euro-Zeichen (als dieser Standard entwickelt wurde gab es noch keinen Euro). Irgendwie wurde es aber reingewurschtelt und einfach das Zeichen 128 durch das Euro-Zeichen ersetzt. Deshalb müsste eine native Darstellung in Shop4 (ISO-8859-1 -> latin1 -> ISO-8859-1) funktionieren. Spätestens jedoch wenn das Ganze in Zeichensätze konvertiert werden muss, die das Euro-Zeichen grundlegend unterstützen (ISO-8859-15, UTF-8) wird es problematisch... Umkodierungsfunktionen sind meist Krümelkacker und beharren darauf, dass ISO-8859-1 kein Euro-Zeichen kennt. Hier muss also das € immer als Ausnahme behandelt werden.
Wenn man dem Ärger aus dem Weg gehen will, dann schreibt man es also am Besten in HTML-Entities. ;)
 

fibergirl

Sehr aktives Mitglied
14. April 2016
829
253
Gute Frage! ISO-8859-1 kennt de facto kein Euro-Zeichen (als dieser Standard entwickelt wurde gab es noch keinen Euro). Irgendwie wurde es aber reingewurschtelt und einfach das Zeichen 128 durch das Euro-Zeichen ersetzt. Deshalb müsste eine native Darstellung in Shop4 (ISO-8859-1 -> latin1 -> ISO-8859-1) funktionieren. Spätestens jedoch wenn das Ganze in Zeichensätze konvertiert werden muss, die das Euro-Zeichen grundlegend unterstützen (ISO-8859-15, UTF-8) wird es problematisch... Umkodierungsfunktionen sind meist Krümelkacker und beharren darauf, dass ISO-8859-1 kein Euro-Zeichen kennt. Hier muss also das € immer als Ausnahme behandelt werden.
Genau, darauf war ich auch gestoßen.

Wenn man dem Ärger aus dem Weg gehen will, dann schreibt man es also am Besten in HTML-Entities. ;)
Das löst das Problem für mich, aber nicht für euch.
Ihr werdet immer damit rechnen müssen, dass irgendeine JTL-Wawi dem JTL- Shop 5 in irgendeinem Text ein ISO-8859-1 Euro-Zeichen einflößt.
Entwerder Ihr müsst alles vorab filtern und die Euro-Zeichen schon mal durch HTML-Entities ersetzen, oder ...

Was ist, wenn Ihr die Texte iconv als ISO-8859-15 verkauft? Vorher vielleicht auch alle 0x80 (Windows-1252 Euro) zu 0xA4 (ISO-8859-15 Euro) wandeln.
Dann wäre das Zeichen an 0xA4 gültig.
Allerdings gibt es noch ein paar weitere Unterschiede: https://matthias.wimmer.name/tables/latin1-9
Die Frage ist, ob diese Zeichen unter Windows in der JTL-Wawi überhaupt benutzt wurden/benutzbar sind.
 
Zuletzt bearbeitet:

JohnnyMcDoogle

Aktives Mitglied
14. Mai 2019
27
2
Umgekehrt ist ein "Deployment" per git push in Produktivsysteme ist nicht zu empfehlen. Nicht nur die letzten Hacks von Github und Gitlab-Repositories basierten darauf, dass User so gearbeitet haben. Im Webroot sollte kein .git-Verzeichnis existieren!

Vielen Dank für Deinen Hinweis. Siehst Du denn auch ein Problem, wenn neben dem ".git"- ein "www"-Verzeichnis liegt, auf das die Domain zeigt? Das ".git"-Verzeichnis sollte doch so nicht erreichbar sein, nicht?

@FPrüfer vielen Dank für Deine Antwort.
 

Xantiva

Sehr aktives Mitglied
28. August 2016
1.787
313
Düsseldorf
Wenn das .git nicht öffentlich zu erreichen ist, sollte das kein großes Problem sein. Alternativ würde ich mir aber mal CI/CD-Systeme anschauen. Dann muss auf dem Produktivsystem auch kein Git laufen.
 

Mirko.Schmidt User deaktiviert

Guest
Per Gitlab CI/CD kann in der .gitlab-ci.yml der Build, Test und Deploy Prozess durchlaufen werden. Dabei kann auch ein manuelles deployen eingestellt werden, welches nur für spezielle Branches gilt. Am besten wäre es dann mit rsync zuarbeiten und --exclude bzw --exclude-from bestimmte Dateien und Ordner auszuschließen. Als Lektüre kann sich https://docs.gitlab.com/ce/ci/ und https://docs.gitlab.com/ce/ci/variables/ angesehen werden.
 
  • Gefällt mir
Reaktionen: Xantiva

Mirko.Schmidt User deaktiviert

Guest
Dann kann einfach im "rsync --exclude-from=.gitignore" genutzt werden. Dann wird alles aus der .gitignore Datei nicht berücksichtigt. z.B. so:
rsync -rltog --exclude-from=.gitignore --exclude=.gitignore --exclude=.gitlab-ci.yml
 
  • Gefällt mir
Reaktionen: JohnnyMcDoogle
Ähnliche Themen
Titel Forum Antworten Datum
Ameisen-Export Buchungsdaten (Rechnungen) - Mahndatum und Mahnstufe fehlen JTL-Ameise - Fehler und Bugs 0
Neu Workflow - Stücklisten im Auftrag abfragen und korrekt in einer Mail auflisten User helfen Usern - Fragen zu JTL-Wawi 1
Neu JTL 5, Footerdesign, Boxabstände und Ausrichtung korrigieren Gelöste Themen in diesem Bereich 5
Neu Firmen- und E-Mail Einstellungen - Text hevorheben (fett) und Anordnung in Vorlage anpassen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
4K Monitor und Skalierung JTL-Wawi 1.8 2
Neu Updatepolitik und Testen von Software - aktuell 5.2.4 Installation / Updates von JTL-Shop 8
Kunden und Artiekl ausblenden JTL-Wawi App 1
Neu Es werden nur jpg Bilder angezeigt und keine webP Gelöste Themen in diesem Bereich 3
Neu Auftragszahlung über Kasse, Auftrag wird nicht als "Verpackt und Versendet" markiert JTL-POS - Fehler und Bugs 1
Gelöst Kassenschublade und Drucker bei iMin D4 Pro JTL-POS - Fragen zu Hardware 2
Neu eBay zusammenfassen von Aufträgen und Buchhaltung User helfen Usern - Fragen zu JTL-Wawi 0
Neu Selbstabholer und eBay User helfen Usern - Fragen zu JTL-Wawi 6
Workflows: Versandgruppen finden und ansprechen JTL-Wawi 1.8 0
Auswertung POS-Umsätze nach Wochentag und Tageszeit JTL-Wawi 1.7 0
Neu Fehler bei Sprach- und Währungsumstellung Allgemeine Fragen zu JTL-Shop 0
Neu Verkaufspreis Differenz Shop und Wawi JTL-Shop - Fehler und Bugs 4
Neu Mehrere Sprachen aktivieren und verschiede Preise pro Land erstellen Betrieb / Pflege von JTL-Shop 1
Neu Paypal Plugin Version 1.2.0 läuft und 1.4.0. läuft nicht auf derselben Umgebung Plugins für JTL-Shop 0
Neu Was steckt hinter der Zahl von 53 Bildern auf Ebay bei Variationsartikeln (und einer unsinnigen Fehlermeldung der Wawi)? JTL-Wawi - Fehler und Bugs 2
Neu Filtereinstellungen: wenn Sonderpreis bei Vater- oder Kindartikeln, Anzeige von Vater- UND Kindartikeln User helfen Usern - Fragen zu JTL-Wawi 5
Neu Sprachvariablen nicht in korrekter Groß- und Kleinschreibung JTL-Shop - Fehler und Bugs 4
Neu Gewicht auf Rechnung (Artikelgewicht und Zusatzgewicht) Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu Neues Plugin: Google Translate / Übersetzer (DSGVO-konform und weitere Features) Plugins für JTL-Shop 2
Neu Workflow Aktion E-Mail senden kann nicht Plain und HTML Email zusammen versenden Arbeitsabläufe in JTL-Wawi 6
Neu JTL Shopify Connector und Billbee frage Shopify-Connector 0
Neu Neues Plugin: Instagram-Feed Portlet (Als Galerie- oder Slideransicht und weitere Features) + 3x kostenlose Lizenzen Plugins für JTL-Shop 4
In Bearbeitung Startschwierigkeiten Scanner und Bon Drucker Allgemeine Fragen zu JTL-POS 3
Neu JTL Worker 2.0 und tinetbestellung Technische Fragen zu den JTL-Connectoren 0
Neu Position Versandkosten und Versandkostenname in PositionTable ausblenden - neuen Vorlagen. Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu Liste aller Namespaces und dessen Aufgabe Allgemeine Fragen zu JTL-Shop 0
Kundenattribute aus Shop übernehmen und aus Wawi zurück an Shop übermitteln Einrichtung JTL-Shop5 1
Neu Warenkorb Hinweise bei Bestandsänderung und Preisänderung Allgemeine Fragen zu JTL-Shop 2
In Bearbeitung Artikel über csv-Datei bearbeiten und importieren Allgemeine Fragen zu JTL-POS 3
Verbindung zu Kundencenter geht verloren und Lizenz muss erneut abgteglichen werden JTL-Wawi 1.8 16
Landingpage Header und Footer erstellen zwecks Vorbestellung Einrichtung JTL-Shop5 0
Neu klare Warnung vor den Bausteinen und der PDF in Vorlagen User helfen Usern - Fragen zu JTL-Wawi 4
Neu JTL erstellt falsche Rechnungskorrekturen für Amazon.co.uk Aufträge und verweigert den Support Amazon-Anbindung - Fehler und Bugs 5
Neu Und ewig grüsst das Murmeltier. "The EntityManager is closed" Shopware-Connector 0
Alternativpositionen und gültig von bis JTL-Wawi 1.8 0
Debitorennummern für bestehende und neue Kunden anlegen JTL-Wawi 1.8 2
In Diskussion Bondrucker - im Allgemeinen und Speziellen (Metapace T 25) JTL-POS - Fragen zu Hardware 4
Neu Eigener (Home-) Server mit Windows UND Linux Starten mit JTL: Projektabwicklung & Migration 23
Neu Microsoft Remote Desktop Fehler Cloutapp Desktop und Lauscher JTL-Wawi - Fehler und Bugs 3
Auftrag und Rechnung Ausgabe funktioniert nicht Client JTL 1.8.10.0 JTL-Wawi 1.8 9
Zahlungsarten und Versandarten ERROR 500 Einrichtung JTL-Shop5 8
Gelöst Hardware für häufige Konstellationen mit USB und Swissbit TSE-Problem ab Android 11 JTL-POS - Fragen zu Hardware 5
Neu Eingangsrechnung und Gewinn rückwirkend ermitteln User helfen Usern - Fragen zu JTL-Wawi 1
Neu 💡Umsatzsteuer- und Internationalisierungs-Expertise von unserem neuen Partner countX News, Events und Umfragen 4
Neu JTL-Ameise Kontaktdaten-Export und in Greyhound importieren plus Zuweisen User helfen Usern 1
Neu PayPal Checkout mit Apple Pay und Google Pay Plugins für JTL-Shop 2

Ähnliche Themen