Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- __vsnprintf
- .gitattributes
- Mqtt
- c2678
- 사전설치
- __snprintf
- wxWidget
- winsock.h Broadcast
- LINK2001
- 멀티바이트 문자 집합 사용
- sts4
- git 최초 설정
- Console
- git 대용량 파일
- 정적 라이브러리에서 MFC 사용
- ExtendWith
- _sprintf
- Flutter
- esp-wroom-32d
- c++ Broadcast
- 의존주입
- OpenCPN설치
- Plugins
- c++ set struct
- 설치 테스트
- SQLite3
- 확인할 수 없는 외부 기호
- OpenCPN
- OpenXLSX 한글
- MFC
Archives
- Today
- Total
세상을 이롭게
string Unicode to multibyte/UTF-8 변환하기 본문
가끔 멀티바이트 문자 집합을 사용하는 경우가 있다.(거의 한국어라면,,,)
실제로 "유니코드 문자 집합 사용"으로 테스트 후 실코드에 적용하려고 하니 에러가 났다.
영어만 사용할 수 있나 라고 생각해보았지만 그런게 어딧겠는가?
이때 사용할 수 있는 것이 WideCharToMultiByte 함수이다.
본인은 https://github.com/troldal/OpenXLSX OpenXLSX
라이브러리를 사용함에 있어 한글데이터가 안들어가져 사용하였다
//example
string conv_uni2multi(const wchar_t strUni[256]) {
char strUtf8[256] = { 0, };
int nLen = WideCharToMultiByte(CP_UTF8, 0, strUni, lstrlenW(strUni), NULL, 0, NULL, NULL);
WideCharToMultiByte(CP_UTF8, 0, strUni, lstrlenW(strUni), strUtf8, nLen, NULL, NULL);
return strUtf8;
}
//...
XLDocument doc;
doc.create(path);
auto wks = doc.workbook().worksheet("Sheet1");
auto cell = wks.cell(1, 1);
wks.cell("A1").value() = conv_uni2multi(L"번호");
wks.cell("B1").value() = "MMSI";
//...
doc.save();
doc.close();
사용법은 L 을 붙여주어 const 임을 명시하여 사용한다.
'C,C++' 카테고리의 다른 글
BroadCast Example Source Code (winsock.h) C++ Window (0) | 2022.07.26 |
---|---|
errer LINK2001: 확인할 수 없는 외부 기호 (0) | 2022.07.20 |
c2678 이항'<':왼쪽 피연산자로 'const_Ty' 형식을 사용하는 연산자가 없거나 허용되는 변환이 없습니다. (0) | 2022.02.16 |
[C++] LNK2001, LNK1120 Class static 사용시 문제 (0) | 2022.02.10 |
VS MSB8008: 지정된 플랫폼 도구 집합(v142)이 설치되지 않았거나 올바르지 않습니다. (0) | 2021.11.29 |