Unicode e "falsa" portabilidade do Java

Seguinte pessoal, estou fazendo reengenharia de uma aplicação (desktop) e realizando alguns ajustes para passar de Windows para Linux (sentenças que gravam em arquivo mais ou menos assim: “C:\dir1\dir2” devem ser alteradas). Entretanto o grande problema é com os “warnings”, por exemplo:
warning: unmappable character for encoding UTF8
Aplicacao aplicacao; // objeto da aplica��

)
Bom sei do que se trata o warning, mas a pergunta é, como resolver isso da maneira mais eficiente, sem ter que ficar mudando os caracteres e passando para ‘\u000’? :thumbup:

a) Você pode fazer (ou achar) um programa que converta os arquivos-fonte que estão no “encoding” ISO-8859-1 (Windows) e os passe para UTF-8
b) Acho que você pode passar o “file.encoding” como opção do compilador, se você não puder alterar a codificação dos arquivos-fonte originais.

javac -J-Dfile.encoding=ISO-8859-1 seus.arquivos.fonte.Java

Faça direito ue.

Aprenda que todo arquivo deve ter seu encoding explicitamente considerado, se você usar o encoding do SO, a portabilidade vai mesmo pro saco, mas nesse caso o culpado é você.

Já trabalhei com sistemas Java que operam em windows, linux e solaris. Depois que aprende as duras penas como fazer direito, passou a funcionar sem o menor problema.

[quote=louds]
Já trabalhei com sistemas Java que operam em windows, linux e solaris. Depois que aprende as duras penas como fazer direito, passou a funcionar sem o menor problema.[/quote]

Bom então… acho que estou na fase das ‘duras penas’ :?
Mas a sua sugestão foi legal thingol, vou testar aqui. Abraços.

Também estou tendo esse problema, se configuro o meu Netbeans para UTF-8, quando compilo e rodo uma aplicação do Windows quando alerta (JOptionPane) que contenha caracteres especiais sai todo encrencado (cheio de sinais).
Tem como ajustar isso?

[quote=thingol]a) Você pode fazer (ou achar) um programa que converta os arquivos-fonte que estão no “encoding” ISO-8859-1 (Windows) e os passe para UTF-8
b) Acho que você pode passar o “file.encoding” como opção do compilador, se você não puder alterar a codificação dos arquivos-fonte originais.

javac -J-Dfile.encoding=ISO-8859-1 seus.arquivos.fonte.Java[/quote]

Thingol você é fera, funcionou, grande dica. Cinco estrelas!!! :smiley:

[ edited ] Bom fica para a próxima, já havia avaliado infelizmente. :XD: [/ edited ]

Acho que vi algo parecido quando tinha um cara no forum.java.sun.com que perguntava como fazer para compilar os programas dele que tinham caracteres em chinês.

public static void main(String[] args) {
    System.out.printf ("您好,世界! %n");
}