
다양한 인코딩 기술에 대한 지원서를 확인하고 있습니다. FTP 서버와 관련된 사용 사례 중 하나에서는 UTF-16과 관련된 내용이 전혀 표시되지 않습니다. 즉, UTF-8이 있으면 FTP 서버에 로그인할 수 있고 UTF-16으로 변경하면 FTP 서버에 로그인할 수 없다는 의미입니다. 해당 서버의 클라이언트에서 "FEAT"를 실행했는데 응답에 UTF-16이 표시되지 않습니다. 내 FTP 서버가 이를 지원하지 않는다는 뜻인가요?
명령을 실행하여 FTP 서버에서 UTF-8을 활성화할 수 있습니다 OPTS UTF8 ON
. FTP 서버에서 UTF-16을 활성화할 수 있거나 UTF-16을 지원하지 않는 명령이 있습니까??
FEAT
아래는 명령 의 응답입니다.
Command: FEAT
Response: 211-Features:
Response: MDTM
Response: REST STREAM
Response: SIZE
Response: MLST type*;size*;modify*;perm*;
Response: MLSD
Response: AUTH SSL
Response: AUTH TLS
Response: PROT
Response: PBSZ
Response: **UTF8**
Response: TVFS
Response: EPSV
Response: EPRT
Response: MFMT
Response: 211 End
** 참고: HTTP/HTTPS는 로그인할 수 있는 UTF-8과 UTF-16을 모두 지원합니다.
Codng를 시작하기 전에 시도한 단계
FTP 서버는 디렉토리를 사용하여 로컬로 생성됩니다.
FTP 클라이언트(FileZilla)에서 FTP 서버에 연결
- UTF-8 문자 세트가 있으면 연결이 성공합니다.
- UTF-16 문자셋을 사용하면 연결이 실패합니다. 여기에 이미지 설명을 입력하세요그리고 아래는 응답입니다
아래는 로그입니다. 상태: 연결이 설정되었습니다. 환영 메시지를 기다리는 중... 응답: ㈲ⴰ楆敬楚汬敓癲牥ㄠ㐮ㄮ 오류: 서버에 연결할 수 없습니다. 상태: 재시도를 기다리는 중... 상태: 주소 확인 중 of localhost 상태: 127.0.0.1:21에 연결 중... 상태: 연결이 설정되었으며 환영 메시지를 기다리는 중... 응답: ㈲ⴰ楆敬楚汬敓癲牥ㄠ㐮ㄮ 오류: 서버에 연결할 수 없습니다.
답변1
FTP는 UTF-16을 지원하지 않습니다. 명령과 응답에 ASCII를 사용하는 텍스트 기반 프로토콜입니다. UTF-8은 ASCII의 상위 집합이기 때문에만 지원할 수 있습니다(예: 다음과 같은 명령은 FEAT
두 가지 모두에서 정확히 동일한 방식으로 인코딩됩니다). ISO-8859와 같은 이전 인코딩에도 동일하게 적용되지만하지 않습니다UTF-16에 적용 - 초기 서버 인사말(항상 ASCII 형식)은 UTF-16을 기대하는 클라이언트에서 이해되지 않으며 UTF-16으로 전송된 명령은 서버에서 이해되지 않습니다.
그러나 일반적으로 두 인코딩을 모두 지원할 실제적인 필요는 없습니다. UTF-8과 UTF-16은 모두 동일한 유니코드 코드 포인트를 다르게 표현한 것일 뿐입니다. UTF-16으로 인코딩할 수 있는 파일 이름은 UTF-8로 인코딩할 수도 있고 그 반대의 경우도 마찬가지입니다. 예를 들어, Windows가 내부적으로 파일 이름으로 UTF-16을 사용하더라도 Windows FTP 서버는 여전히 UTF-8을 사용하고 필요에 따라 둘 사이를 변환합니다.