Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Java verstümmelter Code unter Linux

Java verstümmelter Code unter Linux

angryTom
angryTomOriginal
2019-11-07 09:18:263108Durchsuche

Java verstümmelter Code unter Linux

Ursachen und Lösungen für verstümmelte Zeichen in der Java-Sprache

a) Ein auf awt (swing) basierendes grafisches Schnittstellenprogramm zeigt verstümmelte Zeichen auf Chinesisch an

In grafischen Schnittstellenprogrammen, die auf awt (swing) basieren, wird die chinesische Anzeige im Menü normalerweise verstümmelt angezeigt. Der Grund dafür ist im Allgemeinen, dass die JVM die Schriftart für die Anzeige von Chinesisch nicht finden kann Die Schriftarten unter der Originalinstallation und die Distributionsversionen von Linux sind unterschiedlich, und die Pfade und Namen ihrer Schriftarten sind unterschiedlich, sodass die JVM die im Linux-Betriebssystem enthaltenen Schriftarten im Allgemeinen nicht finden kann Finden Sie die im Linux-Betriebssystem enthaltenen Schriftarten. Unter Redflag 6.0 können Sie das Problem beispielsweise mit dem folgenden Befehl lösen:

mkdir /usr/java/jdk1.6.0/jre/lib/fonts/fallback 
ln -s /usr/share/fonts/chinese/TrueType/*.ttf /usr/java/jdk1.6.0/jre/lib/fonts/fallback

Im Allgemeinen ist es nicht erforderlich, die Schriftartkonfigurationsdatei (fontconfig. OS.Version.properties) im Verzeichnis JRE/lib/.

b) Der System-Client-Browser basierend auf der B/S-Struktur JSP (Servlet) zeigt verstümmelte chinesische Zeichen an.

Die chinesischen Zeichen auf der Seite zeigen verstümmelte Zeichen an.

Für statische Inhalte Wie bei einer HTML-Datei muss der Zeichensatz der Datei nur mit dem im fd426e2c6e9b67e2a85b7856a414b61d festgelegten Satz übereinstimmen die Datei.

Für dynamische Dateien wie JSP und Servlet müssen sie während des Betriebs kompiliert werden. Die JVM interpretiert die Klassendatei, um die vom Client-Browser benötigte HTML-Datei zu generieren während des Prozesses kompiliert und ausgeführt. Wenn Sie kommerzielle Linux-Distributionen und -Server verwenden, müssen Sie im Allgemeinen nur die JSP- oder Servlet-Datei als UTF-8-Zeichensatz speichern und 5a61753547bf44fa9f2012f33854b3b6 Stellen Sie es einfach auf UTF-8 ein. Wenn immer noch verstümmelte Zeichen angezeigt werden, können Sie das Problem mit den folgenden Methoden lösen:

① Wenn der Server unabhängig entwickelt wurde, können Sie den Quellcode ändern, um die JVM zum Lesen von Dateien, Schreiben von Dateien und Generieren von HTML-Dateien anzugeben Die vom Client-Browser benötigte Kodierungsmethode beim Konvertieren von Zeichenfolgen und binären Sequenzströmen, wodurch das Problem grundlegend gelöst und die Anpassungsfähigkeit des Servers verbessert wird, und der Code lautet wie folgt:

new BufferedReader(new InputStreamReader(new FileInputStream(jspfile),”GBK”)); 
new PrintWriter(serfile,”GBK”); 
new PrintWriter(new OutputStreamWriter(os,”GBK”));

② Natürlich können Sie auch die „Gebietsschema“-Einstellung der JVM in der Eintragsdatei des Servers (d. h. der Datei, die die Hauptunterfunktion enthält) ändern:

Locale.setDefault(new Locale(“zh”,”CN”));

③ Wenn Sie einen kommerziellen Server verwenden, können Sie die Shell-Datei ändern, die den Server startet, indem Sie die Umgebungsvariable „export LC_ALL=zh_CN.UTF-8“ festlegen, bevor Sie den Server starten, und so den Standardwert „locale“ unter dieser Konsole ändern.

④ Natürlich können Sie auch die „Gebietsschema“-Einstellungen des Betriebssystems ändern, aber da sich das Ändern der „Gebietsschema“-Einstellungen des Betriebssystems auf andere Anwendungen auswirkt, wird im Allgemeinen diese Methode verwendet.

Der Hauptgrund für die Verwendung der oben genannten Methode besteht darin, dass beim ersten Start der JVM das „Gebietsschema“ des Betriebssystems auf das Standard-„Gebietsschema“ der JVM festgelegt wird. Der Wert „Gebietsschema“ ist im Betriebssystem nicht festgelegt. Die JVM setzt das Standard-„Gebietsschema“ der JVM auf das Standard-„Gebietsschema“ der JVM. Natürlich können Sie auch die Standard-„Gebietsschema“-Einstellung der JVM ändern, wenn Wenn die JVM die Anwendung ausführt, wird sie, wenn die Codierungsmethode angegeben ist, in die angegebene Codierungsmethode konvertiert, andernfalls wird sie gemäß dem Standard-„Gebietsschema“ der JVM konvertiert.

Fazit

Die von der Java-Sprache in der chinesischen Anzeige unter Linux erzeugten verstümmelten Zeichen hängen hauptsächlich mit der Schriftart der JVM, den Gebietsschemaeinstellungen des Betriebssystems, die Standard-Gebietsschemaeinstellungen der JVM und der Anwendung. Die Gebietsschemaeinstellungen in und der direkt in der Anwendung angegebene Binärsequenz-Stream beziehen sich auf den Zeichensatz für die Zeichenfolgenkonvertierung. Dies liegt an den unterschiedlichen Zeichenkodierungsmethoden, die bei der gegenseitigen Konvertierung von Binärsequenzströmen und -zeichenfolgen verwendet werden, oder daran, dass die JVM die erforderliche Schriftart nicht finden kann. Zur Lösung des Problems können verschiedene Methoden verwendet werden . Anwendungsumgebung.

Empfohlen: [Linux-Video-Tutorial]

Das obige ist der detaillierte Inhalt vonJava verstümmelter Code unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn