Windows 7에서 UTF8을 기본 문자 인코딩으로 설정


63

UTF-8을 표준으로 전체적으로 사용하도록 Windows 7을 설정하는 방법이 있습니까?
모든 단일 텍스트 편집기를 사용하도록 설정하는 것은 정말 성가신 일입니다.


4
그래서 당신은 OS에게 무언가를 말하고 싶을 것입니다. 그리고 마술 적으로 모든 편집자들이 그것을 선택합니까? :) 몇 명의 편집자를 사용하십니까? 3 분마다 또 하나? 어쨌든 : superuser.com/questions/221593/windows-7-utf-8-and-unicode 내가 아는 것에서 : Windows는 내부적으로 모든 곳에서 UTF16을 사용하므로 변경할 수 있다고 의심합니다.
akira

1
내가 사용하는 편집자 : notepad, notepad ++, qt, eclipse, thunderbird, open office, 그리고 다른 것들 ... 나는 평범한 텍스트 편집기에 대해서만 말하는 것이 아니라 텍스트로 출력되는 모든 것들에 대해 이야기하고 있습니다. 대부분의 플랫폼 독립 텍스트 편집기는 Linux에서 utf-8을 표준으로 사용하지만 Windows에서는 Latin-1을 사용합니다.
Baarn

Windows 7에는 없지만 Windows 10에서는 가능
phuclv

답변:


45

짧은 대답은 아니요, 불가능합니다 .

자세히 설명하기 위해 Windows 7에서 1) 전역 기본값을 설정하고 2) 나열된 모든 응용 프로그램이 준수하는 전역 인코딩 옵션을 찾을 수 없을 것입니다.

또한 여기서 해결하려는 문제가 무엇인지 묻고 싶습니다.

내부적으로 유니 코드를 사용하여 데이터를 나타내는 지 여부를 선택하는 것은 응용 프로그램에 달려 있습니다. 유니 코드 사용을 권장하지만 실제로는 모든 응용 프로그램이 내부적으로이를 지원한다고 확신 할 수 없습니다.

그러나 할 수있는 일은 나열된 각 응용 프로그램의 기본 문자 인코딩을 변경하는 것입니다.

  • Eclipse의 경우 새 파일의 기본 인코딩은 Windows> 환경 설정> 일반> 컨텐츠 유형 에서 설정할 수 있습니다 ( Eclipse 커뮤니티 양식의 게시물 참조 ).
  • Notepad ++의 경우 설정> 기본 설정> 새 문서 / 기본 / 디렉토리로 이동하여 인코딩을 UTF-8로 설정하십시오.
  • Thunderbird의 경우 이미 UTF-8을 기본 인코딩으로 사용하고 있다고 확신합니까? ( 문자 인코딩에 대한이 참고 사항 참조 )
  • OpenOffice (및 LibreOffice)의 경우 OpenOffice에 의해 저장된 문서는 XML을 기반으로하기 때문에 실제로 인코딩에 신경 쓸 필요가 없습니다. XML에 인코딩이 내부적으로 지정되어 있고 UTF-8 은 이미 기본값도 있습니다)
  • UTF-8 관점에서 PowerShell은 까다 롭습니다. 기본 인코딩은 UTF-16LE입니다.
    • PowerShell에서 UTF-8로 파일을 출력하려면 이 답변을 참조하십시오.
    • 기본 인코딩을 변경하려면 이 답변을 참조하십시오

4
내가 얻기를 바랐던 대답은 아니지만 진실로 살아야한다고 생각합니다. =)
Baarn

메모장 창?
Mimouni

23

UTF-8에 대한 ANSI 코드 페이지, 코드 페이지 65001 이 있어도 Windows는 UTF-8을 시스템 ANSI 코드 페이지로 허용하지 않기 때문에 주로 불가능합니다 . 이에 대한 몇 가지 이유가 있습니다.

  • 유니 코드가 새로운시기에 Microsoft는 UCS-2가 유니 코드를 지원하는 가장 좋은 방법이라고 결정했습니다. 당시 유니 코드는 16 비트였습니다.
  • Windows에는 언어와 인코딩을 독립적으로 설정할 수있는 Unix 및 Linux와 달리 지원되는 각 언어에 대해 하나의 ANSI 코드 페이지 가 있습니다.
  • 코드 페이지 65001은 모든 곳에서 작동하지 않습니다. 특히 멀티 바이트 문자에는 1 ~ 2 바이트가 필요한 반면 UTF-8에는 1 ~ 4 바이트가 필요한 Windows의 일부 멀티 바이트 지원으로 인해 문제가 발생합니다. WriteFile()API 예를 들면은 같은에 의존하는 모든 라이브러리 코드를 통해 거품 코드 페이지 65001에서 잘못된 결과를 반환합니다 write().

마이크로 소프트에서 국제화 작업을 한 마이클 카플란 (Michael Kaplan)은 "Sorting it all Out" 이라는 블로그 에 관련 주제에 관한 여러 게시물을 게시했다. 나는 그날 우려에 대해 그에게 직접 이메일을 보냈다.


Windows (NT)를 생각할 때 UTF-8은 없었습니다. 따라서 UCS-2는 실제로 제정신의 선택이었습니다 (UTF-16을 제외하고 나중에 변경할 수 없음).
Joey

2
그 이유는 UTF-8 로케일이 문자 당 2 바이트를 넘지 않는 멀티 바이트 인코딩을 가정하기 위해 작성된 일부 함수 (예 : _mbsrev)를 깨뜨릴 수 있기 때문입니다. ) 및 UTF-8을 로캘로 설정할 수 없습니다. . 그러나 적어도 지금 은 Windows 10에서 UTF-8 로켈을 설정할 수 있습니다
phuclv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.