J'ai un code actuel et le problème est de créer un fichier de page de code 1252, je veux le forcer à créer un fichier UTF-8
Quelqu'un peut-il m'aider avec ce code, comme je le dis, cela fonctionne actuellement ... mais je dois forcer la sauvegarde sur utf .. puis-je passer un paramètre ou quelque chose ??
c'est ce que j'ai, toute aide vraiment appréciée
var out = new Java.io.FileWriter( new Java.io.File( path )),
text = new Java.lang.String( src || "" );
out.write( text, 0, text.length() );
out.flush();
out.close();
Au lieu d'utiliser FileWriter
, créez un FileOutputStream
. Vous pouvez ensuite envelopper ceci dans un OutputStreamWriter
, ce qui vous permet de passer un encodage dans le constructeur. Ensuite, vous pouvez écrire vos données dans un Instruction try-with-resources :
try (OutputStreamWriter writer =
new OutputStreamWriter(new FileOutputStream(PROPERTIES_FILE), StandardCharsets.UTF_8))
// do stuff
}
Essaye ça
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("outfilename"), "UTF-8"));
try {
out.write(aString);
} finally {
out.close();
}
Essayez d’utiliser FileUtils.write
d’Apache Commons.
Vous devriez pouvoir faire quelque chose comme:
_File f = new File("output.txt");
FileUtils.writeStringToFile(f, document.outerHtml(), "UTF-8");
_
Cela créera le fichier s'il n'existe pas.
Toutes les réponses données ici ne fonctionneront pas, car l'écriture en Java UTF-8 est en panne.
http://tripoverit.blogspot.com/2007/04/javas-utf-8-and-unicode-writing-is.html
Depuis Java 7, vous pouvez faire de même avec Files.newBufferedWriter
un peu plus succinctement:
Path logFile = Paths.get("/tmp/example.txt");
try (BufferedWriter writer = Files.newBufferedWriter(logFile, StandardCharsets.UTF_8)) {
writer.write("Hello World!");
// ...
}
var out = new Java.io.PrintWriter(new Java.io.File(path), "UTF-8");
text = new Java.lang.String( src || "" );
out.print(text);
out.flush();
out.close();
Le type type d’utilitaire Java 7 Files est utile pour travailler avec des fichiers:
import Java.nio.charset.StandardCharsets;
import Java.nio.file.Files;
import Java.nio.file.Path;
import Java.nio.file.Paths;
import Java.io.IOException;
import Java.util.*;
public class WriteReadUtf8 {
public static void main(String[] args) throws IOException {
List<String> lines = Arrays.asList("These", "are", "lines");
Path textFile = Paths.get("foo.txt");
Files.write(textFile, lines, StandardCharsets.UTF_8);
List<String> read = Files.readAllLines(textFile, StandardCharsets.UTF_8);
System.out.println(lines.equals(read));
}
}
La version Java 8 vous permet d’omettre l’argument Charset - les méthodes par défaut sont UTF-8.
nous pouvons écrire le fichier encodé UTF-8 avec Java en utilisant printWriter pour écrire du xml encodé en UTF-8
Ou cliquez ici
PrintWriter out1 = new PrintWriter(new File("C:\\abc.xml"), "UTF-8");
L'exemple de code ci-dessous permet de lire fichier par fichier et d'écrire un nouveau fichier au format UTF-8. En outre, je spécifie explicitement le codage Cp1252.
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream("c:\\filenonUTF.txt"),
"Cp1252"));
String line;
Writer out = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(
"c:\\fileUTF.txt"), "UTF-8"));
try {
while ((line = br.readLine()) != null) {
out.write(line);
out.write("\n");
}
} finally {
br.close();
out.close();
}
}