example - java file utf 8 encoding
Cómo escribir un archivo UTF-8 con Java? (9)
Tengo un código actual y el problema es crear un archivo de página de códigos 1252, quiero forzarlo a crear un archivo UTF-8
¿Alguien puede ayudarme con este código, como digo que actualmente funciona ... pero tengo que forzar la salvación en utf ... ¿puedo pasar un parámetro o algo así?
esto es lo que tengo, cualquier ayuda realmente apreciada
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();
Desde Java 7, puede hacer lo mismo con Files.newBufferedWriter
un poco más sucinta:
Path logFile = Paths.get("/tmp/example.txt");
try (BufferedWriter writer = Files.newBufferedWriter(logFile, StandardCharsets.UTF_8)) {
writer.write("Hello World!");
// ...
}
El tipo de utilidad de archivos Java 7 es útil para trabajar con archivos:
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 versión de Java 8 le permite omitir el argumento Charset , los métodos predeterminados para UTF-8.
El código de ejemplo siguiente puede leer el archivo línea por línea y escribir un nuevo archivo en formato UTF-8. Además, explícitamente estoy especificando la codificación 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();
}
}
En lugar de usar FileWriter
, cree un FileOutputStream
. Puede envolver esto en un OutputStreamWriter
, que le permite pasar una codificación en el constructor. Luego puede escribir sus datos en un enunciado de prueba con recursos :
try (OutputStreamWriter writer =
new OutputStreamWriter(new FileOutputStream(PROPERTIES_FILE), StandardCharsets.UTF_8))
// do stuff
}
Intenta usar FileUtils.write
de Apache Commons.
Debería poder hacer algo como:
File f = new File("output.txt");
FileUtils.writeStringToFile(f, document.outerHtml(), "UTF-8");
Esto creará el archivo si no existe.
Prueba esto
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("outfilename"), "UTF-8"));
try {
out.write(aString);
} finally {
out.close();
}
Todas las respuestas dadas aquí no funcionarán ya que la escritura de UTF-8 de Java está alterada.
http://tripoverit.blogspot.com/2007/04/javas-utf-8-and-unicode-writing-is.html
podemos escribir el archivo codificado en UTF-8 con java usando use PrintWriter para escribir xml codificado en UTF-8
O haga clic here
PrintWriter out1 = new PrintWriter(new File("C://abc.xml"), "UTF-8");
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();