저는 포르투갈어를 모국어로 사용하며 Cygwin에서 실행되는 Qt 애플리케이션에 악센트 문자를 입력하는 데 문제가 있습니다.
거의 항상 내가 입력한 악센트 문자의 화면 결과는 해당 �
문자입니다(유니코드의역할 교체, u+fffd).
문제는 문자를 표시하는 것보다 키보드 입력을 해석하는 것과 관련이 있다고 생각합니다. 보다 구체적으로 문제는 a
"an"을 얻기 위한 "dead-tilde plus" 또는 " ;" 를 얻기 위한 ã
"dead-acute plus" 와 같은 결합된 키 시퀀스의 결과 입력과 관련된 것으로 보입니다. Qt 기반 터미널 에뮬레이터를 사용하여 악센트 문자가 포함된 파일을 화면에 표시할 때나 다른 소스에서 악센트 문자가 포함된 텍스트를 복사/붙여넣기하거나 단일 키 입력(예: 자체 기호 포함) 을 사용할 때도 문제가 없습니다. 브라질 ABNT2 키보드의 키 또는 키를 누르고 있을 때 생성되는 기타 비결합 기호e
é
cat
ç
대체 그룹수정자 키). 또한 터미널에 아무 것도 입력하면(콘솔또는단말기) , 위에서 언급한 것처럼 터미널(또는 일부 기본 라이브러리)이 u+fffd에 해당하는 hexdump -C
3바이트 UTF-8 시퀀스를 전달하는 것이 분명합니다 ."\xef\xbf\xbd"
또한 GTK 기반 애플리케이션(예: Gnome Terminal 또는 LXTerminal)은 이 문제의 영향을 받지 않기 때문에 이것이 Qt 관련 문제라고 생각합니다.
내가 시도한 또 다른 방법은 Qt 응용프로그램과 X11 서버 자체를 시작하기 전에 로케일을 변경하는 것이었지만 도움이 되지 않았습니다.
그래서 내 질문은 다음과 같습니다
Qt가 악센트 문자(및 여러 키 시퀀스를 결합하여 생성된 기타 유니코드 기호)를 이해하도록 Cygwin 환경을 어떻게 구성합니까?
Qt가 제대로 작동하려면 특정 X11 입력 라이브러리를 설치하고 구성해야 합니까? 나는 입력 처리에 대한 Qt의 종속성에 익숙하지 않으므로 도움을 주시면 감사하고 문서화하겠습니다.
도움을 주셔서 미리 감사드립니다.