2011-12-27 7 views
0

私はvcfファイルをアップロードするクライアントを持っており、このファイルをサーバー側で取得して内容を読み取り、それらをtxtファイルに保存します。しかし、トルコ文字があると "?"のように見えます。私読み取りコードはここにある:キャラクターは「?」のように見えます。アップロードされたファイルの内容を読むとき

  FileItemStream item = null; 
      ServletFileUpload upload = new ServletFileUpload(); 
      FileItemIterator iterator = upload.getItemIterator(request); 
      String encoding = null; 
      while (iterator.hasNext()) { 
       item = iterator.next(); 
       if ("fileUpload".equals(item.getFieldName())) { 
        InputStreamReader isr = new InputStreamReader(item.openStream(), "UTF-8"); 
        String str = ""; 
        String temp=""; 
        BufferedReader br = new BufferedReader(isr); 
        while((temp=br.readLine()) != null){ 
         str +=temp; 
        } 
        br.close(); 
        File f = new File("C:/sedat.txt"); 
        BufferedWriter buf = new BufferedWriter(new FileWriter(f)); 
        buf.write(str); 
        buf.close(); 
      } 
+0

入力ファイルは実際にはUTF-8ですか? –

+0

はい、UTF-8です。 –

+0

その後、sedat.txtのエンコードは何ですか?エンコーディング仕様が表示されません。 –

答えて

1
BufferedWriter buf = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f), "UTF-8")); 

これは、生産コードであれば、私はまっすぐに出力をファイルに書き込み、最初の文字列でそれを蓄積しないことをお勧めします。また、ソースをInputStreamとして読み込み、OutputStreamとして書き込むことでエンコードの潜在的な問題を回避できます(また、文字への変換はスキップします)。

関連する問題