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.writedesde 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.newBufferedWriterun 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