PDA

View Full Version : تبدیل کاراکتر های دو بایتی به یک بایتی و بالعکس



saffari2005
پنج شنبه 14 مهر 1384, 14:54 عصر
سلام
آیا تبدیل کاراکتر های دو بایتی به یک بایتی و بالعکس توسط توابع API انجام می شود ؟ کدام توابع؟ این کار در vc++6 چگونه انجام می شود؟

saffari2005
شنبه 16 مهر 1384, 16:10 عصر
در API این کار توسط توابع mbtowc . wctomb و توابع مشابه انجام می شود.و یا می توان از توابع ATL نیز استفاده کرد.
به عنوان مثال در API برای تبدیل رشته به صورت زیر عمل می کنیم:


char *ansii_string = "some text"
int size = strlen(ansii_string);

// permanent UNICODE storage
TCHAR* unicode_string = new TCHAR[size+1];

// convert from ansii to unicode
mbstowcs(unicode_string, ansii_string, size+1);

C++Lover
یک شنبه 17 مهر 1384, 00:57 صبح
توابع mbtowc . wctomb جزء C Run-Time Library می باشند.
در ضمن بهتر است از توابع wctomb_s, _wctomb_s_l و ... استفاده کنید. به خاطر امنیت بیشتر.

توابع MultiByteToWideChar و WideCharToMultiByte که جزء Windows API می باشند (Kernel32.lib) ، یه جورایی همین کار را روی string ها انجام میدهند. البته اگه بخوای از Windows API استفاده کنی.