So fügen Sie CP-1252 zu CentOS hinzu

So fügen Sie CP-1252 zu CentOS hinzu

Wir verarbeiten Dateien, die unsere Kunden auf ihren lokalen Windows-Rechnern generiert haben, die den CP-1252-Zeichensatz verwenden. Gelegentlich treten beim Verarbeiten einer dieser Dateien in unserem Backend (das unter CentOS läuft) Laufzeitfehler auf (es handelt sich also um ein Java-Backend RuntimeExceptions). Wenn wir uns per Fernzugriff auf den Server einloggen, die Datei umbenennen (mit UTF-8) und sie erneut ausführen, wird die Datei einwandfrei verarbeitet.

Gibt es eine Möglichkeit, CP-1252 zu den verfügbaren Zeichensätzen von CentOS „hinzuzufügen“, damit dies nicht mehr passiert?

Antwort1

Sehen Sie sich diesen Fehlerbericht von Oracle zum Verhalten von Java anFehler-ID = 4733494bezogen auf das „Standardgebietsschema“. Laut diesem Fehlerbericht (tatsächlich sagt Sun/Oracle, dass dieses Verhalten kein Fehler ist, sondern einfach die Art und Weise, wie Java entwickelt wurde) von Sun/Oracle:

In JDK-Versionen vor 1.4 haben wir das Gebietsschema „C“ immer auf den Zeichensatz ISO8859-1 erzwungen. In den Versionen 1.4 und höher unterstützen wir das Gebietsschema „C“, das eine Beschränkung auf 7-Bit-ASCII erfordert.

Es wird empfohlen, die Umgebungsvariable LC_ALLauf en_US.ISO8859-1oder das entsprechende Gebietsschema für das System es_ES.ISO-8859-1usw. festzulegen.

Hinzufügen:

export LC_ALL="en_US.ISO-8859-1"

Das Problem sollte durch die Verwendung der Befehlsdatei, die Ihr Java-Backend ausführt, behoben sein.

Dies ist auch in der SO-Frage dokumentiert:https://stackoverflow.com/questions/5663709/how-to-fix-java-when-if-refused-to-open-a-file-with-special-charater-in-filename

verwandte Informationen