私はDBからのデータを含むcsvファイルを作成し、それをUTF-16LEにエンコードして、同じような特殊文字を取得しようとしています。 Javaのファイル:javaでUTF-16ファイルを読むと、データが返されない
BufferedReader br = new BufferedReader(new InputStreamReader(
fileContent, "utf16"));
データが取得されていません。
のように入力ストリームを読みながら、私はUTF-8エンコードを使用する場合:
BufferedReader br = new BufferedReader(new InputStreamReader(
fileContent, "utf8"));
バッファリーダーを使用して、私はすべてのデータを取得していますが、特殊文字が来ているように:
Brut¿l¿
それをどこにBrutéléでなければなりません。
UTF-16でjavaでデータを取得するにはどうすればよいですか? JavaコードでUTF-16LEとANSIを試しました。 ANSIは処理されない例外を与えており、16LEは違いはありません。
`
OutputStream outStream = null;
InputStream inputStream = null;
final int BUFFER_SIZE =33554432;
try {
inputStream = new ByteArrayInputStream(input.getBytes("UTF-16LE"));
System.out.println("outStream = " + outStream);
byte[] buffer = new byte[BUFFER_SIZE];
int bytesRead = -1;
if (inputStream != null)
try {
while ((bytesRead = inputStream.read(buffer)) != -1) {
outStream.write(buffer, 0, bytesRead);
if (outStream != null)
outStream.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}`
でそれを確認することができ
あなたは 'UTF-16'と文字セットを指定しようとしましたか? – eis
はい私はutf-16とutf-16leとしてcharset名を設定しました。まだデータがありません。 –
'StandardCharsets'を使ってみましたか?それは文字列リテラルよりも文字セットにアクセスする良い方法です。 16進エディタに見られるように、ファイルのサンプル*バイト*を投稿できますか?アクセント付き文字を格納するためにUTF-16を使用する必要はないことに注意してください... UTF-8は完全にそのことが可能です。おそらく、ファイルを書き込むために使用しているコードを表示する必要があります。 –