Delphi 10.3을 사용 TIdTCPServer
하고 있으며 클라이언트를 만들었습니다 . 같은 유니 코드 문자 ÅÄÖ
를 보낼 때 변경 되는 것을 발견했습니다 .
ContexClient.Connection.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8;
ContexClient.Connection.IOHandler.WriteLn('abcÅÄÖ');
위의 코드에서 DefStringEncoding
속성 으로 수정하려고 했지만 컴파일러가 IndyTextEncoding_UTF8
.
나는 그것을 작동시키기 위해 무엇을 해야할지 전혀 모른다.
어떤 생각?
Indy의 기본 인코딩은 US-ASCII입니다. GIdDefaultTextEncoding
Indy IdGlobal
유닛 의 변수를 사용하여 런타임에 변경할 수 있습니다 . encUTF8
예를 들어로 설정할 수 있습니다 .
이것이 비 ASCII 문자가 변경되는 이유입니다. TIdIOHandler.DefStringEncoding
속성을 사용하는 것이 하나의 해결책입니다. 단위 IndyTextEncoding_UTF8
로 선언됩니다 IdGlobal
. uses
조항에 단위가 추가되었는지 확인하십시오 .
TIdIOHandler.WriteLn()
자체적으로도 선택적 AByteEncoding
입력 매개 변수가 있습니다. 이 경우 nil
, DefStringEncoding
사용됩니다. 또한 nil
이면 GIdDefaultTextEncoding
이 사용됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다