Normales Thema Zeichensatz UTF-8 versus ISO-8859-1 (Gelesen: 102 mal)
Jopii
Forum Administrator
*****
Offline


I love YaBB 2.6.12!

Beiträge: 23
Standort: Land Of Confusion
Mitglied seit: 01.04.2024
Geschlecht: männlich
Zeichensatz UTF-8 versus ISO-8859-1
29.11.2024 um 10:52:46
Beitrag drucken  
Grundsätzlich kann YaBB 2.6x mit den Zeichensätzen UTF-8 und ISO-8859-1 ausgeführt werden.

Wird das Forum komplett neu aus den Archive neu installiert, wird es wohl keine Probleme geben.

Das hiesige Forum habe ich aus einem Mix von Neuinstallation und bereits aufbereiteten Sprachdateien für die deutsche Sprache erstellt.

Die Zeichensatzeinstellungen für das Forum habe ich auf UTF-8 gesetzt, aber die Sprachdateien lagen im Zeichensatz ISO-8859-1 vor.

Dies führte zu kryptischen Darstellungen der in der deutschen Sprache oftmals genutzten Buchstaben ä und ö und ü und ß sowie Ä und Ö und Ü.

Somit mussten die Sprachdateien, auch die englischsprachigen Dateien, konvertiert werden, um eine ordnungsgemäße Darstellung zu ermöglichen.

Mit einem kleinen Python-Tool konnte ich die Konvertierung sehr schnell erledigen. Zwar hätte ich dies auch in Perl schreiben können, aber Python liegt mir derweil doch etwas mehr. Die Perl-Version werde ich dann noch nachliefern.

Code (C++)
Alles auswählen
#!/usr/bin/env python3
# *************
# python3 adhoc_encode_iso88591_to_utf8.py
# Autor: Joopi
# Datum: 29.11.2024
# *************
#
import os
import pathlib

quellpfad = "../yabb_jopii/cgi-bin/yabb2/Languages/German_informal/iso88591/"
zielpfad = "../yabb_jopii/cgi-bin/yabb2/Languages/German_informal/utf8/"

# quellpfad = "../yabb_jopii/cgi-bin/yabb2/Languages/English/iso88591/"
# zielpfad = "../yabb_jopii/cgi-bin/yabb2/Languages/English/utf8/"

for datei in sorted(pathlib.Path(quellpfad).iterdir()):
    if datei.is_file():
        filename = os.path.basename(datei)
        ziel = f"{zielpfad}{filename}"
        # ISO-8859-1-kodierte Datei lesen und in UTF-8 konvertieren
        with open(datei, "r", encoding="iso-8859-1") as file:
            text = file.read()

        # In UTF-8 kodierten Text zurückschreiben
        with open(ziel, "w", encoding="utf-8") as output_file:
            output_file.write(text)

        print(f"Die Sprachdatei {datei} wurde bearbeitet.") 

  

The Administrator - Cheffe von Ganzes
Zum Seitenanfang
IP gespeichert