文字変換の一般的に使用される方法

1、チャーターンUTF-8

int型char2Utf8(のconst char型*のSRC、文字** RET)
{ 
	int型nret。
	int型のlen = 0; 
	WCHAR * PWCHAR = 0; 
	int型のコードページ= AreFileApisANSI()?CP_ACP:CP_OEMCP。
	LEN = MultiByteToWideCharの(コードページ、0、SRC、-1、NULL、0); 
	PWCHAR =(WCHAR *)はmalloc(LENはsizeof(WCHAR)*)。
	nret = MultiByteToWideCharの(コードページ、0、SRC、-1、PWCHAR、LEN)。
	(nret <0)であれば
		、戻りnret。

	LEN = WideCharToMultiByte(CP_UTF8、0、PWCHAR、-1、0、0、0、0); 
	* RET =(チャー*)のmalloc(LEN + 1)。
	nret = WideCharToMultiByte(CP_UTF8、0、PWCHAR、-1、* RET、LEN、0、0); 
	無料(PWCHAR)。
	nret返します。
}

  2、UTF-8トランスフェクトチャー

int型Utf2char(のchar *のSRC、文字** RET)
{ 
	int型nret。
	WCHAR * PWCHAR = 0; 
	int型のコードページ= AreFileApisANSI()?CP_ACP:CP_OEMCP。
	nret = MultiByteToWideCharの(CP_UTF8、0、SRC、-1、NULL、0); 
	PWCHAR =(WCHAR *)はmalloc(はsizeof(WCHAR)* nret)。
	nret = MultiByteToWideCharの(CP_UTF8、0、SRC、-1、PWCHAR、nret)。

	nret = WideCharToMultiByte(コードページ、0、PWCHAR、-1、0、0、0、0); 
	* RET =(CHAR *)はmalloc(nret + 1)。
	nret = WideCharToMultiByte(コードページ、0、PWCHAR、-1、* RET、nret、0、0); 
	無料(PWCHAR)。
	nret返します。

}

  3、URL転送UTF-8

ストリングurlUtf8(チャー*列str)
{ 
	文字列DD。
	文字列のアスキー= STR。
	チャーUTF8 [BUFFER_LEN * 5]。
	memsetの(UTF8、0x00で、BUFFER_LEN * 5)。
	ASCIIToUTF8_string(ASCII、UTF8)。
	文字列TT = UTF8。

	size_tのLEN = tt.length()。
	用は(size_t i = 0; iがLEN <; iは++)
	{ 
		IF(isalnum((BYTE)tt.at(I)))
		{ 
			チャーtempbuff [2] = {0}。
			sprintf(tempbuff、 "%のC"、(BYTE)tt.at(I))。
			dd.append(tempbuff)。
		} 
		そうであれば(isspace((BYTE)tt.at(I)))
		{ 
			dd.append( "+")。
		} 
		{ 
			チャーtempbuff [4]。 
			sprintfの(tempbuff、 "%%% X%X"、((BYTE)tt.at(I))>> 4、((BYTE)tt.at(I))%16)。 
			dd.append(tempbuff)。
		} 

	} 
	戻りDD; 
} 

ボイドASCIIToUTF8_stringは、(文字列&cACSII、cUTF8チャー*)
{ 
	//最初のASCIIコードは、Unicodeエンコーディングに変換され   
	INT nlen = MultiByteToWideCharの(CP_ACP、0 、cACSII.c_str()、-1、NULL、NULL); 
	* = PUNICODE新しい新規のwchar_tのwchar_t [cACSII.size()* 3]; 
	のmemset(PUNICODE、0、* nLenはsizeof(wchar_t型)); 
	MultiByteToWideCharの(CP_ACP、0、cACSII.c_str()-1、(LPWSTR)PUNICODE、 nLen); 
	wstringのwsUnicode = PUNICODE; 
	// Unicodeは、UTF-8エンコーディングとしてエンコード変換   
	nlen = WideCharToMultiByte(CP_UTF8、0、 wsUnicode.c_str()、-1、NULL、0、NULL、NULL);
	WideCharToMultiByte(CP_UTF8、0、wsUnicode.c_str()、-1、cUTF8、nlen、NULL、NULL); 

}

  図4は、指定されたビットの乱数を生成します

std ::文字列GetRandString(size_tのサイズ)
{ 
	tCurTimeのtime_t = 0。
	int型iRandValue = 0; 
	私はint型。
	unsigned int型状態= 0; 
	tCurTime =時間(NULL)。
	srand関数((unsigned int型)tCurTime)。
	チャーBUF [255]。
	(私は++; iはサイズが<I = 0)のための
	{ 
		BUF [I] = '0' +(RAND()%10)。
	} 

	BUF [I] = '\ 0'。
	BUFを返します。
}

  5、現在の時刻のタイムスタンプを取得します

ストリングGetTimeStamp()
{ 
	のtime_t CURTIME =時間(NULL)。
	TM * PTM = localtimeの(&CURTIME)。
	チャーBUF [64]。
	sprintf(BUF、 "%D%02D%02D%02D%02D%02D"、ptm->のtm_year + 1900 ptm-> tm_mon + 1、
		ptm-> tm_mday、ptm-> tm_hour、ptm-> tm_min、ptm- >のtm_sec); 
	BUFを返します。

}

  

おすすめ

転載: www.cnblogs.com/alinh/p/11088171.html