私はJavaでこのコード行を持っています:
new BufferedWriter(new OutputStreamWriter(new FileOutputStream(name, append), "UTF-8"));
このライターはUTF-8ファイルを書き込みません。これは、notepad ++でファイルを開くと、エンコードがUTF-8としてのANSIであると表示されるためです。純粋なUTF-8である必要があります。
何か提案はありますか?
私はJavaでこのコード行を持っています:
new BufferedWriter(new OutputStreamWriter(new FileOutputStream(name, append), "UTF-8"));
このライターはUTF-8ファイルを書き込みません。これは、notepad ++でファイルを開くと、エンコードがUTF-8としてのANSIであると表示されるためです。純粋なUTF-8である必要があります。
何か提案はありますか?
notepad ++(およびその他のツール)はエンコーディングを推測することしかできず、ファイル(または一部のメタデータ)のどこにも書き込まれません。
また、作成したテキストにASCII範囲外の文字が含まれていない場合(つまり、Unicodeコードポイントが127を超える文字がない場合)、ANSIエンコーディングのファイルとUTF-8エンコーディングのファイルを区別できません。
ほとんどの場合、Notepad++ではファイルの先頭にBOMが必要です。最初にバイトEFBBBFをファイルに書き込み、次にエンコードされた文字を書き込みます。