2013-10-17 1 views
0

servler를 사용하여 .txt 파일에서 THAI 문자를 다운로드 할 수 없습니다. 다운로드를 클릭하면 THAI 문자가 파일에 ???으로 표시됩니다. 생성 된 파일 형식은 UNIX이고 FILE Type은 ANSI입니다. 하지만 적절한 파일 형식, 즉 Windows와 ANSI를 비롯하여 적절한 THAI 문자를 생성해야합니다.서블릿을 통해 .TXT 파일에서 태국어 문자를 다운로드 할 수 없습니다.

문자 인코딩에 가능한 모든 조합을 사용했습니다. 다음은 파일을 다운로드 할 때 사용하는 코드입니다.

미리 감사드립니다. 내가 타이어 Charcters에서 파일을 작성하는 데 성공있어

  ftp=new FTPClient(); 
      ftp = Utilities.getFTPConnection(ftpServerIP, ftpUserName, ftpPassword); 
      retValue = ftp.changeWorkingDirectory(uploadRoot); 

      Value = ftp.retrieveFile(fileName, new FileOutputStream(downloadFile)); 
      if (!Value) 
      { 
        throw new Exception ("Downloading of remote file "+downloadFile.getName()+" failed. ftp.retrieveFile() returned false."); 
      } 
      isSuccess = true; 
     }   

    } 
    catch(Exception e) 
    { 

    } 
    finally 
    { 
     Connection Close Code 
     downloadFile.exists(); 
    } 

    InputStream in = null; 
    PrintWriter printWriter = null; 
    DataInputStream dataInputStream = null; 
    BufferedReader bufferReaderFile = null; 
    String strLineFromFile; 
    try 
    { 
      File f= new File(uploadPath+File.separator+clientCode+File.separator+fileName); 

      if(f.exists()) 
      { 
       result=Action.SUCCESS;      
       response.reset(); 
       response.setCharacterEncoding("US-ASCII"); 
       response.setContentType("application/x-download"); 
       response.setHeader("Cache-Control", "max-age=0"); 
       response.setHeader("Content-Disposition","attachment;filename="+ fileName); 

       in = new FileInputStream(f); 
       dataInputStream = new DataInputStream(in); 
       bufferReaderFile = new BufferedReader(new InputStreamReader(dataInputStream,"US-ASCII")); 
       printWriter=response.getWriter(); 
       byte[] buf = new byte[8192]; 
       int sizeRead = 0; 
       while ((sizeRead = in.read(buf, 0, buf.length)) > 0) 
       { 
       outStream.write(buf,0,sizeRead); 
       } 
       while ((strLineFromFile = bufferReaderFile.readLine()) != null) 
       { 
        printWriter.println(strLineFromFile); 
        outStream.print("\n\r"); 
       } 

       printWriter.flush(); 
       printWriter.close(); 
       bufferReaderFile.close(); 
       dataInputStream.close(); 
       in.close(); 
+0

인코딩은 UTF-8이어야합니다. 둘째, FTP 클라이언트를 사용하여 수동으로 다운로드 할 때 어떻게 나타 납니까? –

답변

0

하지만 그것을 위해 나는 UTF-8 형식을 사용 I 파일을 작성하는 리눅스 서버에서 fille 내용을 읽어하면서 TIS-620를 사용하는 태국어 charecters에 대한 적절한 형식으로 파일을 생성했습니다. 그러나이 파일을 열면 으로 수정됩니다. NOTEPAD ++ 우리는 파일 인코딩 형식을 변경해야합니다.