私はいくつかの現在のコードを持っています、そして問題は1252コードページファイルを作成することです、私はそれにUTF-8ファイルを作成することを強制したいです
誰かが私はそれが現在動作していると言うように、このコードで私を助けることができる...しかし、私はutfに保存を強制する必要があります..私はパラメータや何かを渡すことができますか?
これは私が持っているものです、任意の助けは本当に感謝
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();
FileWriter
を使用する代わりに、FileOutputStream
を作成します。その後、これをOutputStreamWriter
でラップして、コンストラクターでエンコードを渡すことができます。それから---その中にあなたのデータを書くことができます try-with-resourcesステートメント :
try (OutputStreamWriter writer =
new OutputStreamWriter(new FileOutputStream(PROPERTIES_FILE), StandardCharsets.UTF_8))
// do stuff
}
これを試して
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("outfilename"), "UTF-8"));
try {
out.write(aString);
} finally {
out.close();
}
Apache Commonsの FileUtils.write
を使ってみてください。
次のようなことができるはずです。
File f = new File("output.txt");
FileUtils.writeStringToFile(f, document.outerHtml(), "UTF-8");
ファイルが存在しない場合は作成されます。
JavaのUTF-8の記述にバグがあるため、ここに挙げたすべての答えは機能しません。
http://tripoverit.blogspot.com/2007/04/javas-utf-8-and-unicode-writing-is.html
Java 7以降、Files.newBufferedWriter
でももう少し簡潔に同じことができます。
Path logFile = Paths.get("/tmp/example.txt");
try (BufferedWriter writer = Files.newBufferedWriter(logFile, StandardCharsets.UTF_8)) {
writer.write("Hello World!");
// ...
}
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();
Java 7 Filesユーティリティタイプ はファイルを操作するのに便利です。
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));
}
}
Java 8バージョン を使用すると、Charset引数を省略できます。メソッドのデフォルトはUTF-8です。
printWriterを使ってUTF-8でエンコードされたxmlを書くことで、UTF-8でエンコードされたファイルをJavaで書くことができます。
またはクリック ここ
PrintWriter out1 = new PrintWriter(new File("C:\\abc.xml"), "UTF-8");
以下のサンプルコードは、ファイルを1行ずつ読み取り、新しいファイルをUTF-8形式で書き込むことができます。また、私は明示的に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();
}
}