Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 16개 있습니다.)
(시리즈 글이 3개 있습니다.)
개발 환경 구성: 48. 개발자 PC 환경 - 유니코드(Unicode)를 위한 설정
; https://www.sysnet.pe.kr/2/0/762

.NET Framework: 2122. C# - "Use Unicode UTF-8 for worldwide language support" 설정을 한 경우, 한글 입력이 '\0' 문자로 처리
; https://www.sysnet.pe.kr/2/0/13354

개발 환경 구성: 728. 윈도우 환경의 개발자를 위한 UTF-8 환경 설정
; https://www.sysnet.pe.kr/2/0/13775




개발자 PC 환경 - 유니코드(Unicode)를 위한 설정


개발자라면!

개인적으로 다음의 2가지 설정은 강제화해야 한다고 봅니다.

  1. UAC 설정
  2. Unicode 사용 확인이 쉽도록 설정

사실 UAC 같은 경우에는 개발자들일수록 더욱 풀어놓는 경향이 있는데요. 제 개인적으로는 반대입장입니다. 왜냐하면, 개발자야말로 자신이 개발하는 응용 프로그램의 어떤 면이 UAC에 걸리는지를 자신의 환경에서 평소에 알고 있어야 하기 때문입니다.

그 다음으로는, 유니코드의 사용!
요건 어떻게 강제화할 수 있을까요?

생각보다 간단합니다. 제어판의 "Region and Language" 설정에 가서 비-유니코드 문자열들에 대한 언어설정을 명시적으로 "영어"로 바꿔주시면 됩니다.

[그림 1: non-Unicode 응용 프로그램을 위한 언어 설정]
two_settings_for_dev_1.png

자! 그럼 이렇게 바뀌었을 경우에 어떤 문제들이 있을까요?

우선, 국내에서 제작된 응용 프로그램들중에서 "한글"을 유니코드로 인코딩하지 않고 사용하는 프로그램들은 아래와 같이 글자들이 깨져서 나오게 됩니다. (의외군요. 알툴즈 제품들은 해외에도 서비스되고 있는데 기본적으로 유니코드를 사용하고 있지 않습니다.)

[그림 2: 한글이 깨지는 응용 프로그램]
two_settings_for_dev_2.png

비단, 국내 응용 프로그램만 문제되는 것은 아닙니다. 윈도우즈 탐색기는 유니코드를 사용하기 때문에 "폴더 경로"에 한글이 허용되는데요. 유니코드를 지원하지 않는 영문 프로그램에서 그런 "한글이 섞인 폴더"에 파일을 저장하려면 다음과 같은 식으로 오류가 발생합니다.

[그림 3: 한글 폴더에 저장이 안 되는 응용 프로그램]
two_settings_for_dev_3.png

사실, 국외 프로그램들 - 특히 영어권 개발자들은 유니코드를 강제화하기 쉽지 않을 것 같습니다. 평소에 쓰는 언어가 영어이다 보니 일부러 모르는 외국어 폴더를 만들어 놓고 매번 테스트하기도 쉽지 않을테니까요.

어떠세요? 그래도, 보니까 좀 심각하죠?
개발자들의 PC만이라도 유니코드를 사용했는지 여부를 쉽게 확인할 수 있는 환경으로 설정해 놓고 쓴다면 적어도 국내 응용 프로그램 중에서 저렇게 문제가 되는 경우는 많이 줄어들지 않을까요? ^^




[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 6/15/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2009-08-28 11시11분
이에 더해서. 요즘에는 64비트 운영체제 설치가 부각되지요. ^^
kevin25
2011-11-30 03시24분
유용했습니다 감사합니다~^^
스포너
2011-11-30 04시10분
제 경우에는 꼭 저렇게 설정하고 시스템을 사용하는데요.
가끔 이것때문에 시행착오를 겪는 경우도 있습니다.

UTF-8 포맷의 INI 파일에 대한 GetPrivateProfile... API 사용 불가
; http://www.sysnet.pe.kr/2/0/927

File cannot be opened. Ensure it is a valid Data Link file.
; http://www.sysnet.pe.kr/2/0/1035

또한, 일부 국내 프로그램들이 여전히 유니코드 지원이 미흡해서 발생하는 불편함들이 소소하게 있고. ^^
정성태

1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13843정성태12/13/20244366오류 유형: 938. Docker container 내에서 빌드 시 error MSB3021: Unable to copy file "..." to "...". Access to the path '...' is denied.
13842정성태12/12/20244507디버깅 기술: 205. Windbg - KPCR, KPRCB
13841정성태12/11/20244837오류 유형: 937. error MSB4044: The "ValidateValidArchitecture" task was not given a value for the required parameter "RemoteTarget"
13840정성태12/11/20244412오류 유형: 936. msbuild - Your project file doesn't list 'win' as a "RuntimeIdentifier"
13839정성태12/11/20244840오류 유형: 936. msbuild - error CS1617: Invalid option '12.0' for /langversion. Use '/langversion:?' to list supported values.
13838정성태12/4/20244580오류 유형: 935. Windbg - Breakpoint 0's offset expression evaluation failed.
13837정성태12/3/20245036디버깅 기술: 204. Windbg - 윈도우 핸들 테이블 (3) - Windows 10 이상인 경우
13836정성태12/3/20244600디버깅 기술: 203. Windbg - x64 가상 주소를 물리 주소로 변환 (페이지 크기가 2MB인 경우)
13835정성태12/2/20245040오류 유형: 934. Azure - rm: cannot remove '...': Directory not empty
13834정성태11/29/20245266Windows: 275. C# - CUI 애플리케이션과 Console 윈도우 (Windows 10 미만의 Classic Console 모드인 경우) [1]파일 다운로드1
13833정성태11/29/20244949개발 환경 구성: 737. Azure Web App에서 Scale-out으로 늘어난 리눅스 인스턴스에 SSH 접속하는 방법
13832정성태11/27/20244898Windows: 274. Windows 7부터 도입한 conhost.exe
13831정성태11/27/20244367Linux: 111. eBPF - BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_MAP_TYPE_RINGBUF에 대한 다양한 용어들
13830정성태11/25/20245161개발 환경 구성: 736. 파이썬 웹 앱을 Azure App Service에 배포하기
13829정성태11/25/20245124스크립트: 67. 파이썬 - Windows 버전에서 함께 설치되는 py.exe
13828정성태11/25/20244423개발 환경 구성: 735. Azure - 압축 파일을 이용한 web app 배포 시 디렉터리 구분이 안 되는 문제파일 다운로드1
13827정성태11/25/20245075Windows: 273. Windows 환경의 파일 압축 방법 (tar, Compress-Archive)
13826정성태11/21/20245304닷넷: 2313. C# - (비밀번호 등의) Console로부터 입력받을 때 문자열 출력 숨기기(echo 끄기)파일 다운로드1
13825정성태11/21/20245635Linux: 110. eBPF / bpf2go - BPF_RINGBUF_OUTPUT / BPF_MAP_TYPE_RINGBUF 사용법
13824정성태11/20/20244734Linux: 109. eBPF / bpf2go - BPF_PERF_OUTPUT / BPF_MAP_TYPE_PERF_EVENT_ARRAY 사용법
13823정성태11/20/20245268개발 환경 구성: 734. Ubuntu에 docker, kubernetes (k3s) 설치
13822정성태11/20/20245134개발 환경 구성: 733. Windbg - VirtualBox VM의 커널 디버거 연결 시 COM 포트가 없는 경우
13821정성태11/18/20245065Linux: 108. Linux와 Windows의 프로세스/스레드 ID 관리 방식
13820정성태11/18/20245223VS.NET IDE: 195. Visual C++ - C# 프로젝트처럼 CopyToOutputDirectory 항목을 추가하는 방법
13819정성태11/15/20244461Linux: 107. eBPF - libbpf CO-RE의 CONFIG_DEBUG_INFO_BTF 빌드 여부에 대한 의존성
13818정성태11/15/20245239Windows: 272. Windows 11 24H2 - sudo 추가
1  2  3  [4]  5  6  7  8  9  10  11  12  13  14  15  ...