J'ai du 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 dis qu'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.String( src || "" );
out.write( text, 0, text.length() );
out.flush();
out.close();
Réponses:
Au lieu d'utiliser
FileWriter
, créez un fichierFileOutputStream
. Vous pouvez ensuite envelopper ceci dans unOutputStreamWriter
, ce qui vous permet de passer un encodage dans le constructeur. Ensuite, vous pouvez écrire vos données dans une instruction try-with-resources :try (OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(PROPERTIES_FILE), StandardCharsets.UTF_8)) // do stuff }
la source
Essaye ça
Writer out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("outfilename"), "UTF-8")); try { out.write(aString); } finally { out.close(); }
la source
Writer out = ...
devrait être corrigé enBufferedWriter out = ...
.Essayez d'utiliser à
FileUtils.write
partir 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.
la source
Toutes les réponses données ici ne fonctionneront pas car l'écriture UTF-8 de java est boguée.
http://tripoverit.blogspot.com/2007/04/javas-utf-8-and-unicode-writing-is.html
la source
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!"); // ... }
la source
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();
la source
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(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.
la source
nous pouvons écrire le fichier encodé UTF-8 avec java en utilisant utiliser PrintWriter pour écrire du xml encodé UTF-8
Ou cliquez ici
PrintWriter out1 = new PrintWriter(new File("C:\\abc.xml"), "UTF-8");
la source
L'exemple de code ci-dessous peut lire le fichier ligne par ligne et é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(); } }
la source