Tengo un código actual y el problema es que está creando un archivo de página de códigos 1252, quiero forzarlo a crear un archivo UTF-8
¿Alguien puede ayudarme con este código, ya que digo que actualmente funciona ... pero necesito forzar el guardado en utf ... ¿puedo pasar un parámetro o algo?
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();
Respuestas:
En lugar de usar
FileWriter
, cree unFileOutputStream
. Luego puede envolver esto en unOutputStreamWriter
, que le permite pasar una codificación en el constructor. Luego puede escribir sus datos en una Declaración de prueba con recursos :fuente
Prueba esto
fuente
Writer out = ...
debe corregirse aBufferedWriter out = ...
.Intenta usar
FileUtils.write
desde Apache Commons.Deberías poder hacer algo como:
Esto creará el archivo si no existe.
fuente
Todas las respuestas dadas aquí no funcionarán ya que la escritura UTF-8 de Java está defectuosa.
http://tripoverit.blogspot.com/2007/04/javas-utf-8-and-unicode-writing-is.html
fuente
Desde Java 7 puedes hacer lo mismo con
Files.newBufferedWriter
un poco más de manera sucinta:fuente
fuente
El tipo de utilidad Java 7 Files es útil para trabajar con archivos:
La versión de Java 8 le permite omitir el argumento Charset , los métodos predeterminados para UTF-8.
fuente
podemos escribir el archivo codificado UTF-8 con java usando PrintWriter para escribir xml codificado UTF-8
O haga clic aquí
fuente
El siguiente código de muestra puede leer el archivo línea por línea y escribir un archivo nuevo en formato UTF-8. Además, estoy especificando explícitamente la codificación Cp1252.
fuente