기본적으로 Indy는 다양한 인터넷 프로토콜과의 호환성을 위해 문자 인코딩으로 7 비트 ASCII를 사용합니다. 다른 문자 인코딩을 사용하려면, 당신이 필요로 다음 중 하나
- 어떤 읽기/쓰기를 수행하기 전에
IOHandler.DefStringEncoding
속성을 설정합니다. 문자열 기반 I/O 메소드는 기본적으로이 인코딩을 사용합니다. // note: use TIdTextEncoding.UTF8 if not using Indy 10.6 or later...
AContext.Connection.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8;
WriteLn()
을 포함하여 다양한 문자열 기반 I/O 방법의 선택 AByteEncoding
매개 변수를 사용합니다.
// note: use TIdTextEncoding.UTF8 if not using Indy 10.6 or later...
AContext.Connection.IOHandler.WriteLn('Usuário não existe', IndyTextEncoding_UTF8);
없이
클라이언트는 서버의 데이터를 읽을 때 다시 유니 코드로 전송 된 바이트를 디코딩 할 수 있도록 해당 인코딩을 사용하는 것, 말을.
// note: use TIdTextEncoding.UTF8 if not using Indy 10.6 or later...
Client.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8;
또는 : : 예를 들어
// note: use TIdTextEncoding.UTF8 if not using Indy 10.6 or later...
S := Client.IOHandler.ReadLn(IndyTextEncoding_UTF8);
결과 후 : AContext.Connection.IOHandler.DefStringEncoding = TIdTextEncoding.ASCII; 사용자 선호도 NAO의 existe 결과 후 : AContext.Connection.IOHandler.DefStringEncoding = TIdTextEncoding.ANSI; 유향이 존재하지 않습니다. 해결되지 않았습니다. 어떤 인코딩을 사용해야합니까? –
감사합니다. 내 실수는 2 번이었고, 클라이언트는 Encoding을 사용하지 않았고, 두 번째는 ASCII 나 ANSI가 아닌 UTF8을 사용해야했습니다. 이제는 완벽하게 일했습니다. 다시 한 번 감사드립니다 !!!! –