Windows 10: 글꼴 문자가 불완전하게 표시됨

Windows 10: 글꼴 문자가 불완전하게 표시됨
  • 기본적으로 Windows 10에는segoe ui 이모티콘폰트
  • 이 글꼴은 다음 4개의 유니코드 문자가 있는 유일한 기본 글꼴입니다.

답변1

최신 UI 요소는 레거시 요소와 동일한 방식으로 작동하지 않습니다. 실행 대화 상자와 메모장은 모두 나머지 OS로 업데이트되지 않는 고대 레거시 요소입니다. 검색 창은 최신 OS 요소이므로 이는 OS의 모든 최신 요소의 동작이어야 합니다. Segoe 글꼴 제품군은 최신 UI를 위해 개발되었으며 모두 다양한 텍스트 표시 기능에 사용됩니다. 즉, Microsoft 개발은 일관성으로 알려져 있지 않습니다. 서로 다른 팀에서 개발하고 서로 다른 동작을 갖는 다양한 요소를 찾을 수 있습니다.

"최신" Windows 10 응용 프로그램에서 글꼴이 어떻게 다르게 처리되는지에 대한 자세한 내용은 다음 문서를 참조하세요.https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/typography-in-wpf

WPF는 다음 기능을 제공하여 향상된 글꼴 지원을 제공합니다. 모든 텍스트에 대한 유니코드. 글꼴 동작 및 선택에는 더 이상 문자 세트나 코드 페이지가 필요하지 않습니다.

이는 최신 앱이 글꼴 모음 내에서 여러 글꼴의 문자를 표시하는 방법을 설명합니다.

답변2

@harrymc "Windows의 모든 소프트웨어는 동일한 Windows 구성 요소에서 지원되는 동일한 API를 사용합니다."

나: * 이것은 "api"에 대한 정의와 관련이 있습니다. * 둘 다 .net에서 실행되며 자체적으로는 winrt(Windows 런타임)에서 실행됩니다. * 하지만 여전히 서로 다른 인터페이스를 가질 수 있습니다. 다른: https://en.wikipedia.org/wiki/Windows_Forms * "Windows Forms는 기존 Windows API를 기반으로 구축되었으며 일부 컨트롤은 기본 Windows 구성 요소를 래핑하기만 합니다." https://en.wikipedia.org/wiki/Windows_Presentation_Foundation * "WPF의 아키텍처는 관리 코드와 네이티브 코드 구성 요소를 모두 포괄합니다. 그러나 공개 API는 관리 코드를 통해서만 사용할 수 있습니다. WPF의 대부분은 관리 코드에 있지만 WPF 애플리케이션을 렌더링하는 구성 엔진은 네이티브 구성 요소입니다. ."

https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.fontfamily?view=netframework-4.8

"WPF 글꼴 대체 메커니즘은 이전 Win32 글꼴 대체 기술을 대체합니다."

https://support.microsoft.com/en-us/help/3083806/why-does-some-text-display-with-square-boxes-in-some-apps-on-windows-1

"Windows는 여전히 유니코드와 국제 텍스트를 훌륭하게 지원하고 있으며 범용 Windows 앱이 데스크톱 장치 및 기타 모든 폼 팩터에서 뛰어난 텍스트 표시를 가질 수 있도록 보장합니다.

@HackSlash "실행 대화 상자와 메모장은 모두 나머지 OS로 업데이트되지 않는 고대 레거시 요소입니다."

나: * 사실이 아님 * 하지만 메모장은 워드패드만큼 자주 업데이트되지 않습니다.

메모 * 이 게시물은 곧 정리하겠습니다 * 현상금 시간이 다 되기 전에 이 게시물을 만들 시간이 거의 없었습니다 * @harrymc와 @HackSlash 둘 다 근본적인 잘못이 있었습니다 * 그래서 더 정확한 정보를 제공하고 싶었습니다

답변3

나는 허용되는 답변에 동의하지 않습니다. Windows의 모든 소프트웨어는 동일한 Windows 구성 요소에서 지원하는 동일한 API를 사용합니다. 오래된 소프트웨어는 오래된 API를 사용할 수 있지만 현재 개발 중인 메모장이나 워드패드의 경우에는 그렇지 않습니다.

메모장 및 워드패드에서 포스터가 경험한 문제는 해당 제품의 문제보다 사용자 인터페이스와 더 관련이 있으며 다음은 현재 글꼴이 Segoe UI Emoji로 지정된 경우 문자가 올바르게 표시되는 증거입니다.

여기에 이미지 설명을 입력하세요

그러나 현재 글꼴에 하나 이상의 문자가 포함되지 않는 한 현재 글꼴이 Segoe UI Emoji가 아닌 경우 이러한 문자를 붙여넣는 것이 작동할 것으로 기대하지 마십시오.

Windows 대화 상자의 경우: 대화 상자가 생성되면 텍스트 필드에 사용되는 글꼴이 대화 상자 정의에 지정됩니다. Segoe UI Emoji 글꼴은 분명히 일반 텍스트 글꼴로 적합하지 않으므로 이러한 사용자 인터페이스에는 절대 사용되지 않습니다.

적어도 대화 상자의 정의가 포함된 해킹 없이는 대화 상자가 프로그래밍된 글꼴이 아닌 다른 글꼴을 사용하도록 강제할 수 .exe없습니다 .dll. 따라서 이모티콘 붙여넣기가 대화 상자에 작동할 것이라고 기대할 수 없습니다.

편집하다

유니코드 문자 범위는 매우 크지만 지구상의 모든 언어의 문자를 모두 포함하기에는 충분하지 않습니다. 이것이 바로 글꼴이 중요한 이유입니다. 동일한 유니코드 코드 포인트가 다른 글꼴의 다른 문자에 사용될 수 있기 때문입니다.

Windows 클립보드는 Linux 클립보드와 달리 기능이 풍부합니다. 문자만 포함되는 것이 아니라 언어, 방향(오른쪽, 왼쪽), 글꼴 등에 대한 정보도 포함될 수 있습니다. API는 다양한 형식을 설정하고 가져올 수 있으며 저장된 형식을 요청한 형식으로 변환할 수 있을 만큼 지능적입니다.

따라서 특수 문자를 복사하여 붙여넣을 때 얻는 내용은 소스 및 대상 프로그램에서 사용된 API에 따라 다릅니다. 아래는 워드패드를 사용한 예입니다.

Arial 글꼴의 초기 텍스트는 다음과 같습니다.

여기에 이미지 설명을 입력하세요

이제 브라우저에서 텍스트 끝까지 네 번째 문자를 복사하여 붙여넣으면 기적이 보입니다. 이제 글꼴은 Segoe UI Emoji입니다.

여기에 이미지 설명을 입력하세요

이제 "Arial"이라는 단어를 클릭하면 글꼴이 갑자기 달라집니다.

여기에 이미지 설명을 입력하세요

이제 우리는 두 가지 다른 글꼴로 된 텍스트를 갖게 되었습니다. 붙여넣은 문자(

관련 정보