iconv 문자열 변환 질문입니다.
      글쓴이: park3250 / 작성시간: 화, 2016/07/26 - 3:41오후    
  
  안녕하세요
윈도우에서 문자열 변환하는걸 리눅스로 포팅하려고 하는데요
iconv로 처리하고 싶은데 혹시 어떻게 하면 될까요?
inline LPSTR WINAPI _W2UTF8Helper(LPSTR lpu, LPCWSTR lpw, int nChars)
{
	assert(lpu != NULL);
	assert(lpw != NULL);
	if (lpu == NULL || lpw == NULL)
		return NULL;
 
	lpu[0] = '\0';
	int ret = WideCharToMultiByte(CP_UTF8, 0, lpw, -1, lpu, nChars, 0, 0);
	if (ret == 0)
	{
		assert(FALSE);
		return NULL;
	}
 
	return lpu;
}
 
inline LPWSTR WINAPI _A2WHelper(LPWSTR lpw, LPCSTR lpa, int nChars)
{
	assert(lpw != NULL);
	assert(lpa != NULL);
	if (lpw == NULL || lpa == NULL)
		return NULL;
 
	lpw[0] = '\0';
	int ret = MultiByteToWideChar(CP_ACP, 0, lpa, -1, lpw, nChars);
	if (ret == 0)
	{
		assert(FALSE);
		return NULL;
	}
	return lpw;
}
 
 
#define UTF8_CONVERSION	int _conv_uc; (_conv_uc); LPCWSTR _lpw_uc; (_lpw_uc); LPCSTR _lpa_uc; (_lpa_uc); LPCSTR _lpu_uc; (_lpu_uc);
 
#define A2UTF8(lpa) (\
					((_lpa_uc = lpa) == NULL) ? NULL : (\
					_conv_uc = MultiByteToWideChar(CP_ACP, 0, _lpa_uc, -1, NULL, 0) * sizeof(WCHAR),\
					_lpw_uc = _A2WHelper((LPWSTR)_alloca(_conv_uc), _lpa_uc, _conv_uc),\
					_conv_uc = WideCharToMultiByte(CP_UTF8, 0, _lpw_uc, -1, NULL, 0, 0, 0) * sizeof(CHAR),\
					_W2UTF8Helper((LPSTR)_alloca(_conv_uc), _lpw_uc, _conv_uc)))
 
#define W2UTF8(lpw)	(\
					((_lpw_uc = lpw) == NULL) ? NULL : (\
					_conv_uc = WideCharToMultiByte(CP_UTF8, 0, _lpw_uc, -1, NULL, 0, 0, 0) * sizeof(CHAR),\
					_W2UTF8Helper((LPSTR)_alloca(_conv_uc), _lpw_uc, _conv_uc)))답변을 부탁드리겠습니다..
Forums: 


댓글 달기