티스토리 뷰
라즈베리파이 Qt에서 한글은 UTF-8(유니코드)을 사용하고 있는데 프린트를 하기 위해 펌웨어를 사용하고 있는 인터페이스 보드로
전송하여 인쇄를 하니까 한글이 깨져서 나왔다.
그래서 char를 hex로 변환시켜 '가'를 로그에 표시해 해봤더니
UTF-8(유니코드) - 0xEAB080 (3byte)
eucKR - 0xB0A1 (2byte)
가 나왔다. 보드쪽은 eucKR(KSC5601)를 사용하고 있기 때문이다.
그래서 Qt에 있는 코덱 변환 함수를 이용해 봤지만 여전히 깨져 나왔다.
그러던 iconv 함수를 이용한 C소스를 찾았고 성공했다^^
아~ 묵혔던 체증이 싹 풀리는거 같다 ㅋㅋ
// 한글 인코딩 UTF-8 -> eucKR
int utf82euckr(char *source, char *dest, int dest_size)
{
iconv_t it;
char *pout;
size_t in_size, out_size;
it = iconv_open("EUC-KR", "UTF-8");ㅋㅋ
in_size = strlen(source);
out_size = dest_size;
pout = dest;
iconv(it, &source, &in_size, &pout, &out_size);
iconv_close(it);
return(pout - dest);
}
// 사용방법
har Han[100];
memset(Han, 0, sizeof(Han));
utf82euckr("가나다", Han, sizeof(Han));
Send(han);
'프로그래밍 > Qt' 카테고리의 다른 글
투명 버튼 (0) | 2019.06.11 |
---|---|
한달 지난 로그 파일 지우기 (0) | 2019.06.11 |
QSerialPort (0) | 2019.06.11 |
QTcpSocket isConnected (0) | 2019.06.11 |
폼안에 쓰레드 호출 함수 넣기 (0) | 2019.06.11 |
- Total
- Today
- Yesterday