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.881
529
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
832
263
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.881
529
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.881
529
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
832
263
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.795
316
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.881
529
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
832
263
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.795
316
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
Neu Kritisches Problem bei DHL 4.0: Handelsstücklisten brechen EU- und Exportversand JTL-ShippingLabels - Fehler und Bugs 6
Neu Besucher und Kampagnen Statistik Konfiguration Betrieb / Pflege von JTL-Shop 0
Bestellabgleich mit JTL Wawi und WooCommerce 1h verzögert JTL-Wawi 2.0 0
JTL-Worker 2.0 - Einrichtung als Dienst - Auffälligkeiten und Problemlösungen für manche JTL-Wawi 2.0 3
Neu Summenanzeige in Zahlungen (F7) und Beschaffung (F3) JTL-Wawi - Ideen, Lob und Kritik 0
Neu jtl POS und wawi 1.11.9 Bestände User helfen Usern - Fragen zu JTL-Wawi 3
Neu Custom Checkout - Conversion optimiert mit Speicherung von Standard-Versandart und Zahlungsart am Kunden JTL-Shop - Ideen, Lob und Kritik 1
In Diskussion Workflow mit UND / ODER - Bedingung erstellen JTL-Workflows - Ideen, Lob und Kritik 7
Ameise-Export: Umsatzsteuer stimmt nicht mit Differenz aus Netto und Brutto überein (insbesondere bei mehreren Steuersätzen) JTL-Wawi 1.11 0
Neu Amazon DIVID- und Lucid-Nummer User helfen Usern 0
Neu Bestände in-house und beim Lieferanten + Proforma-Rechnungen, wie? Arbeitsabläufe in JTL-Wawi 3
Neu Vater und Kinderartikel User helfen Usern - Fragen zu JTL-Wawi 11
Neu product_visibility bei JTL-Wawi und Shopware 6 Shopware-Connector 1
Probleme mit Worker und JTL-App JTL-Wawi 2.0 5
Neu Shopware 5 connector und WawI 1.11.06 bis 1.11.8 Shopware-Connector 1
Bilder unter Versand- und Zahlungsart unterschiedlich groß Einrichtung JTL-Shop5 0
Neu Widerrufsbutton: Jeder, der den Button betätigt, kann das Widerrufsformular ausfüllen und absenden - auch ohne Bestellung? Allgemeine Fragen zu JTL-Shop 68
Neu Problem mit Dantezeile und fehlerhafte Angebotsgültigkeit. Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu JTL Pro Edition – Lizenzumstellungen und Abrechnungsfragen Smalltalk 42
Neu JTL Shop 5 und Klarna Plugins für JTL-Shop 0
Inaktive Verkaufskanäle lassen sich nicht löschen – erscheinen nach Löschen und Speichern erneut JTL-Wawi 1.11 0
Neu DP Internetmarke 2.0 vs. 1.0 – Vorteile, Stabilität und Umstieg? JTL-ShippingLabels - Ideen, Lob und Kritik 0
Neu Neuentwicklung - Helpdesk für JTL Wawi - Eure Ideen und Wünsche? User helfen Usern - Fragen zu JTL-Wawi 4
Neu POS im Kundencenter buchen, aber wie und wo? Allgemeine Fragen zu JTL-POS 2
Neu Probleme mit Ninepoint und TikTok Shop Schnittstellen Import / Export 6
Neu 5.6.1 Bug bei Versandarten mit Kalkulation durch Artikelmenge und Staffelpreisen JTL-Shop - Fehler und Bugs 2
Neu Ältere Young Fashion Kollektion: Mit Kaufland, TikTok & Influencer schnell hochziehen und abverkaufen? Dienstleistung, Jobs und Ähnliches 1
Neu JTL samt Kaufland & TikTok kurz hochschießen und dann schließen/abverkaufen? Business Jungle 7
Plan und Produce - Produktionsbuchung JTL-Wawi 2.0 1
Neu Best Practices für den Export und die Automatisierung von täglichen Berichten in JTL‑WaWi User helfen Usern - Fragen zu JTL-Wawi 2
Plötzliche Preissenkungen auf ebay und amazon JTL-Wawi 1.10 2
Neu Bankdaten in Wawi V1.11.7 werden vererbt und nicht aktualisiert User helfen Usern - Fragen zu JTL-Wawi 2
Kunde kauft über Amazon und dann über Ebay - Mailversand JTL-Wawi 1.10 10
Neu Workflow automatisch bei Warenausgang für Bestand und Puffer JTL-Wawi - Ideen, Lob und Kritik 12
Seit umzug auf neuen Server und vorherigem update auf 2.0, startet worker nicht... JTL-Wawi 2.0 8
Neu Alte Produktbilder erscheinen im JTL-Shop trotz Löschung und neuem Upload immer wieder – JTL-Wawi enthält nur neue Bilder JTL-Wawi - Fehler und Bugs 16
Neu Bilder importieren mit "vorhandene Bilder vor dem Import entfernen und neu importieren" > eigenartiges Verhalten JTL-Ameise - Fehler und Bugs 2
Neu Gewährleistungs- und Garantielabel ab 27.09.2026 Betrieb / Pflege von JTL-Shop 1
Neu Pickliste wird auf Packtisch und in Wawi unter Picklisten nicht angezeigt. JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 1
Rechnungsversand per eMail hin und wieder nicht erfolgreich JTL-Wawi 1.9 1
Neu Buchungsdatenservice richtig nutzen und Einrichten User helfen Usern - Fragen zu JTL-Wawi 0
Neu Filter und Sortierung komplett ausschalten Allgemeine Fragen zu JTL-Shop 4
Neu Shop Bestellungen und Abonnements möglich? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Für die Weiterentwicklung und Betreuung unserer bestehenden Systemlandschaft suchen wir einen erfahrenen Freelancer (m/w/d) mit fundierten Kenntnissen JTL-Wawi App 1
Permanente / Laufende Inventur ohne Lagerplatz und ohne WMS mobil JTL-Wawi 1.10 2
Neu welche Sync Benutzer Daten in Shop und WAWI bei neu-Hosting über JTL Allgemeine Fragen zu JTL-Shop 0
Neu Abgleich erstellt neue Artikel aber ohne Bestand und Bestandsführung WooCommerce-Connector 2
Ameisen-Vorlagen Attribute und Eigene Felder lassen sich nicht speichern JTL-Wawi 1.11 2
Neu JTL WMS und WMS APP - UDI Codes Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Bildsortierung und Personalisierung eBay-Anbindung - Fehler und Bugs 4

Ähnliche Themen