Eu tenho algum código atual e o problema é a criação de um arquivo de página de código 1252, quero forçá-lo a criar um arquivo UTF-8
Alguém pode me ajudar com este código, como eu digo que atualmente funciona ... mas eu preciso forçar a salvar em utf .. posso passar um parâmetro ou algo assim?
é isso que eu tenho, qualquer ajuda 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();
Respostas:
Em vez de usar
FileWriter
, crie umFileOutputStream
. Em seguida, você pode agrupar isso em umOutputStreamWriter
, o que permite passar uma codificação no construtor. Em seguida, você pode gravar seus dados em uma instrução try-with-resources :fonte
Tente isto
fonte
Writer out = ...
deve ser corrigido paraBufferedWriter out = ...
.Tente usar
FileUtils.write
Apache Commons.Você deve ser capaz de fazer algo como:
Isso criará o arquivo se ele não existir.
fonte
Todas as respostas dadas aqui não funcionam, pois a escrita UTF-8 do java está com erros.
http://tripoverit.blogspot.com/2007/04/javas-utf-8-and-unicode-writing-is.html
fonte
Desde o Java 7, você pode fazer o mesmo com
Files.newBufferedWriter
um pouco mais sucintamente:fonte
fonte
O tipo de utilitário Java 7 Files é útil para trabalhar com arquivos:
A versão do Java 8 permite omitir o argumento Charset - os métodos padrão para UTF-8.
fonte
podemos escrever o arquivo codificado em UTF-8 com java usando use PrintWriter para escrever xml codificado em UTF-8
Ou clique aqui
fonte
Abaixo, o código de amostra pode ler o arquivo linha por linha e gravar um novo arquivo no formato UTF-8. Além disso, eu estou especificando explicitamente a codificação Cp1252.
fonte