578 Stimmen

Wo erhält man ein "UTF-8"-String-Literal in Java?

Ich versuche, eine Konstante anstelle eines String-Literal in diesem Stück Code zu verwenden:

new InputStreamReader(new FileInputStream(file), "UTF-8")

"UTF-8" kommt im Code recht häufig vor und sollte besser auf eine static final stattdessen eine Variable. Wissen Sie, wo ich eine solche Variable im JDK finden kann?

Übrigens, wenn ich es mir recht überlege, sind solche Konstanten schlecht konzipiert: Öffentliche statische Literale ... sind keine Lösung für Datenduplikation

11 Stimmen

Véase diese Frage .

2 Stimmen

Hinweis: Wenn Sie bereits mit Java 7 arbeiten, verwenden Sie Files.newBufferedWriter(Path path, Charset cs) von NIO.

3 Stimmen

Das ist ein wirklich schlechter Ratschlag in Ihrem Link. Er will, dass Sie eine Wrapper-Klasse für jede mögliche String-Konstante machen, die Sie verwenden könnten?

3voto

sendon1982 Punkte 8352

Klasse org.apache.commons.lang3.CharEncoding.UTF_8 ist seit der Einführung von Java 7 veraltet java.nio.charset.StandardCharsets

  • @see JRE-Zeichenkodierungsnamen
  • @Seit 2.1
  • @deprecated Mit Java 7 wurde {@link java.nio.charset.StandardCharsets} eingeführt, das diese Konstanten wie folgt definiert
  • {@link Charset} Objekte. Verwenden Sie {@link Charset#name()}, um die in dieser Klasse bereitgestellten Zeichenkettenwerte zu erhalten.
  • Diese Klasse wird in einer zukünftigen Version entfernt werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X