본문 바로가기

인코딩

(5)
VSCODE 로 visual studio 의 c/cpp 프로젝트 소스코드를 볼 때 인코딩이 깨진다 visual studio 로 만든 C/CPP 프로젝트를 vscode 로 둘러보며 살펴보고 싶은데, 주석의 한글 등이 깨져보였다. 이유는 visual studio 에서는 소스코드의 기본인코딩을 cp949/euckr (또는 각 윈도우의 언어 기본인코딩) 으로 하여 저장되어 있고, visual studio code 는 utf-8 을 기본으로 열기 때문이다. 간단히 하나의 파일만 보려면, vscode 하단 바에 UTF-8 이라는 부분을 한번 클릭하여, Reopen with Encoding 에서 원하는 인코딩을 선택하면 된다. 하지만, 여러 파일을 둘러보는 상황이어서, 특정 프로젝트에 대해서 하나하나 볼 때마다 수작업으로 볼 수는 없었다. vscode 의 전체설정에서 파일인코딩을 cp949 로 바꾸어 버리면, 다..
인코딩을 들여다보자 아주 오래전에 회사내부에서 공유하려 만들었던 글입니다. 인코딩을 들여다보자 다음과 같은 실험으로 인코딩을 들여다보자. 준비물 : notepad, madedit, python notepad 로 동일한 문자열 여러가지 인코딩으로 저장해 보기 기본 cp949 인코딩 영문은 한 글자당 한바이트가 되고, 한글 한 글자가 두바이트가 되는 cp949 (euc-kr) 인코딩 바이트 스트림이 저장된다. utf-8 인코딩 영문은 여전히 한 글자당 한바이트, 한글은 한 글자가 3바이트가 되어 저장된다. utf 16(le) 인코딩 영문, 한글 상관 없이 모든 글자 하나가 두바이트로 저장된다. utf 16(be) 인코딩 바로 위와 동일하게 영문, 한글 모두 두바이트씩으로 저장되지만, 두바이트의 순서가 le와 반대이다. made..
Visual Studio 에서 utf-8 인코딩된 소스코드 사용하기. 리눅스 플랫폼에서 개발된 c/c++ 소스코드를 컴파일할 일이 생겼다. 한국어 윈도우에서 visual studio 2015 로 프로젝트를 만들어 컴파일하여 돌려보니, 가져온 소스코드의 인코딩이 cp949 가 아닌 utf-8 이어서 메시지가 깨져서 나왔다. 소스 자체의 인코딩을 바꾸어 주는 방법도 있었지만, utf-8 소스를 그대로 유지하고, visual studio 2015 프로젝트 세팅을 변경하여 사용하고 싶었다. 찾아보니 그런 방법이 있었다. https://docs.microsoft.com/ko-kr/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8?view=msvc-140 /utf-8(소스 및 실행 파일 문자 집합을..
한글 visual studio 를 사용할 때, vcpkg install zlib 과정에 문자가 깨지며 빌드에러가 발생함. 한국어 (또는 일본어, 중국어등) visual studio 가 깔려 있을 경우, vcpkg 를 이용하여 패키지를 install 할 때, 중간 명령의 문자가 깨지면서 실패하는 경우가 있다. 이 경우의 대응법을 찾다가 한 일본 블로거의 포스팅을 발견하여 번역한다. 아래 방법을 사용하여 2019년 11월 27일 최신버전에서 동일한 문제를 넘어갈 수 있었다. (비록 원본 포스팅의 날짜는 2017년 10월 것이지만.) zlib 와 protobuf 등에서 동일한 문제가 발생했다. 원본 포스팅 : https://eiichiromomma.github.io/2017/10/13/vcpkg-ninja/ vcpkg을 테스트해 보려고, Power Shell 에서 git clone https://github.com/Microso..
[PGSQL|번역] Template Databases http://www.postgresql.org/docs/8.4/static/manage-ag-templatedbs.html 21.3. Template Databases CREATE DATABASE 는 실제론 이미 존재하는 데이터베이스를 복사하는 방식으로 동작한다. 기본(default)으론 template1 이라는 이름의 표준 시스템 데이터베이스를 복사한다. 그래서 이 데이터베이스의 이름이 "template"인 것이다. template1 에 어떤 객체를 추가하면, 그 객체들은 사용자가 만든 데이터베이스에 복사되어 따라들어가게 된다. 이런 방식으로 데이터베이스의 표준 객체 집합 이외의 사이트에 특성화된 수정을 할 수 있도록 해 준다. 예를 들면, 프로시져 언어 PL/pgSQL을 template1에 설치하면,..