• Tistory
    • 태그
    • 위치로그
    • 방명록
    • 관리자
    • 글쓰기
Carousel 01
Carousel 02
Previous Next

문자열 인코딩 변경하기

Programming/C, C++, MFC 2021. 5. 6. 09:55




문자열을 다루다 보면 인코딩을 변경해야 하는 일이 발생한다.

 

전통적인 방식의 ansi 와 멀티바이트 방식인 유니코드, utf-8 등등 다양한 인코딩 방식이 존재하지만

이들간 변환이 간단하지는 않다

(std::string이 아닌경우 C++ 에서 ansi 는 char*로, 유니코드는 wchar_t*로, utf-8은 char* 형으로 사용한다.)

 

또한 ansi에서 utf-8로는 다이렉트 변환도 안되서 유니코드로 변경했다 다시 바꿔주는 등 불편함이 많다.

 

그래서 MS에서 사용하기 편하게 정의해둔 기능을 사용하기로 하자.

 


우선 아래 기능을 사용하기 위해서는 atlstr.h 를 추가해 줘야 한다.

이 헤더를 추가하면 MFC 사용 안하고도 CString도 사용 가능하다.

 

대략적인 사용법은 아래와 같다.

 

wstring strUni = CA2W("멀티바이트를 유니코드로 변환");
string strMulti = CW2A(L"유니코드를 멀티바이트로 변환");
string strUTF8 = CW2A(L"유니코드를 UTF8로변환",CP_UTF8);

// string에서 포인터 얻어오는게 c_str()이듯.
// CA2W나 CW2A에서 포인터 얻어오는건 m_psz 이다..
// 그리고 CA2W CW2A는 기본적으로 CString 즉 (CAtlString)에 기반을 두고 고 있기때문에
// CString를 사용할때 가장 빠른다!!.
// 만약 멀티 플레폼을 기준으로 한다면 CA2W는 사용 못함!
저작자표시

'Programming > C, C++, MFC' 카테고리의 다른 글

std::vector 에서 argmax, argmin 값을 계산하자.  (0) 2021.07.15
비주얼 스튜디오 버전 정리 (VS/VC)  (0) 2021.05.28
문자열 인코딩 변경하기  (0) 2021.05.06
특정주소가 폴더(디렉토리)인지 파일인지 확인하자  (0) 2021.02.04
MFC Dialog 에서 enter, esc 동작을 제어하자  (0) 2020.11.10
하위폴더 포함, 폴더 전체를 복사하자  (0) 2020.11.10
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

트랙백 0개, 댓글 0개가 달렸습니다

댓글을 달아 주세요

  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • ···
  • 51
  • »

카테고리

  • 살다보니.. (414)
    • 주절거림 (3)
    • 취미생활 (36)
      • 지식과 지혜 (3)
      • 풍경이 되어 (4)
      • Memories (17)
      • 엥겔지수를 높여라 (2)
    • mathematics (6)
      • Matrix Computation (2)
      • RandomProcesses (3)
    • English.. (8)
    • Programming (134)
      • C, C++, MFC (51)
      • C# (1)
      • OpenCV (17)
      • Python (47)
      • Git, Docker (3)
      • Matlab (4)
      • Windows (3)
      • Kinect V2 (2)
      • 기타 etc. (6)
    • 전공관련 (73)
      • Algorithm (6)
      • Deep Learning (49)
      • 실습 프로그램 (4)
      • 주워들은 용어정리 (8)
      • 기타 etc. (6)
    • Computer (104)
      • Utility (21)
      • Windows (24)
      • Ubuntu, Linux (55)
      • NAS (2)
      • Embedded, Mobile (2)
    • IT, Device (41)
      • 제품 사용기, 개봉기 (14)
      • 스마트 체험단 신청 (27)
    • Wish List (3)
    • TISTORY TIP (5)
    • 미분류. 수정중 (1)

태그목록

  • Computer Tip
  • ReadString
  • random variable
  • 매트랩
  • 포르투갈
  • matlab
  • 일본
  • 매트랩 함수
  • ColorMeRad
  • 딥러닝
  • CStdioFile
  • 갤럭시노트3
  • SVM
  • LIBSVM
  • 후쿠오카
  • Deep Learning
  • 에누리닷컴
  • 큐슈
  • utility
  • matlab function
  • DeepLearning
  • Convolutional Neural Networks
  • 크롬
  • 스마트체험단
  • 오봉자싸롱
  • DSLR
  • review
  • function
  • 칼로리 대폭발
  • portugal

달력

«   2022/06   »
일 월 화 수 목 금 토
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
06-28 06:37

LATEST FROM OUR BLOG

  • 골뱅이 연산자의 의미 (행렬곱)..
  • 프린터 용지 부족 문제를 해⋯.
  • [MXNet] 데이터 리스트를 만⋯.
  • 예쁘게 출력하자 pprint - pr⋯.
  • 작업표시줄 미리보기를 리스⋯.
  • 이미지 실제 파일 포맷 확인하기.
  • 알리 등 해외배송 배송상태를⋯.
  • 티스토리 코드블럭 내용을 복⋯.
  • warning 을 on/off 하자.
  • windows 10 파일 선택, 파일⋯.
RSS 구독하기

BLOG VISITORS

  • Total : 1,130,796
  • Today : 26
  • Yesterday : 468

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바