본문 바로가기

반응형

UTF-8

(2)
[C++] UTF-8 문자열 길이 C++은 강력한 프로그래밍 언어지만 그에 반해 부족한 부분도 많다. 특히 문자열 관련해서는 타의 추종을 불허할 정도로 불편하다. 이번 포스트에서는 C++에서 UTF-8 문자열의 개수를 세어 보도록 하겠다. UTF-8 인코딩 규칙 보통 UTF-8관련 포스팅이라면, UTF-8의 인코딩 역사 부터, 유니코드와의 관계 등등 장황한 이야기가 펼쳐지지만 여기서는 코드를 작성 할 수 있을 정도의 짧고 얇은 지식만 요약하고 넘어 간다. 밑줄 그어진 부분을 집중해서 보자. UTF-8인코딩은, 유니코드 한 문자를 나타내기 위해 1바이트에서 부터 4바이트까지 사용하는 "가변 길이" 문자열 인코딩 방식이다. 문자에 따라 문자를 표현하기 위해 1바이트에서 4바이트까지 다양한 길이를 가진다. 1바이트로 표시된 문자의 최상위 비트..
[C++] 윈도우 콘솔에서 UTF-8 출력하기 들어가며 C++을 이용해서 UTF-8로 인코딩된 파일의 내용을 읽어와 콘솔창에 출력 할 때, 특히 윈도우의 경우 '?쒓??뚯뒪?' 처럼 텍스트가 깨져서 콘솔에 출력 된다. 기본적으로 유닉스 베이스 OS 콘솔은 코드페이지가 UTF-8을 지원하지만, 윈도우 콘솔은 기본 아스키 코드 페이지이기 때문에 SetConsoleOutputCP 함수를 이용해 프로그램과 연결된 콘솔의 코드페이지를 변경해주어야 한다. ※ SetConsoleOutputCP함수의 보다 자세한 사항은 [여기]를 참고하자. Example 아래는 '한글테스트'라고 적혀 있는 utf-8로 인코딩 된 파일을 읽어와 출력하는 예제다. NOTE : 티스토리 코드 블록 버그인지 아래 코드를 그대로 복붙해서 빌드하면 컴파일 에러가 발생하므로 첨부 파일을 다운..

반응형