Comment écrire un fichier UTF-8 avec Java?

J’ai un code en cours et le problème est qu’il crée un fichier de page de codes 1252, je veux le forcer à créer un fichier UTF-8

Quelqu’un peut-il m’aider avec ce code, comme je le dis, il 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.Ssortingng( src || "" ); out.write( text, 0, text.length() ); out.flush(); out.close(); 

Au lieu d’utiliser FileWriter , créez un FileOutputStream . Vous pouvez ensuite OutputStreamWriter ceci dans un OutputStreamWriter , ce qui vous permet de passer un encodage dans le constructeur. Ensuite, vous pouvez écrire vos données dans une déclaration 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(aSsortingng); } finally { out.close(); } 

Toutes les réponses données ici ne fonctionneront pas puisque l’écriture UTF-8 de Java est bogue.

http://sortingpoverit.blogspot.com/2007/04/javas-utf-8-and-unicode-writing-is.html

Essayez d’utiliser FileUtils.write partir d’Apache Commons.

Vous devriez pouvoir faire quelque chose comme:

 File f = new File("output.txt"); FileUtils.writeSsortingngToFile(f, document.outerHtml(), "UTF-8"); 

Cela créera le fichier s’il n’existe pas.

Depuis Java 7, vous pouvez faire la même chose 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.Ssortingng( src || "" ); out.print(text); out.flush(); out.close(); 

Le 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(Ssortingng[] args) throws IOException { List lines = Arrays.asList("These", "are", "lines"); Path textFile = Paths.get("foo.txt"); Files.write(textFile, lines, StandardCharsets.UTF_8); List 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é en 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"); 

Le code ci-dessous peut lire le fichier ligne par ligne et écrire un nouveau fichier au format UTF-8. Aussi, je spécifie explicitement l’encodage Cp1252.

  public static void main(Ssortingng args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream("c:\\filenonUTF.txt"), "Cp1252")); Ssortingng 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(); } }