PDA

View Full Version : چطوری بایدیه فایل UTF8 رو خوند؟



hamedre81
سه شنبه 16 مهر 1392, 22:55 عصر
سلام دوستان چطوری باید یه فایلی متنی UTF8 رو خوند؟

omidshaman
چهارشنبه 17 مهر 1392, 07:32 صبح
http://www.codeproject.com/Articles/38242/Reading-UTF-8-with-C-streams

vasilopita
چهارشنبه 17 مهر 1392, 09:42 صبح
اگه منظورت خوندن از فایله که به این شکل :

logfile=_wfopen(FileDir,_TEXT("a,ccs=UTF-8"));

hamedre81
چهارشنبه 17 مهر 1392, 13:31 عصر
اگه منظورت خوندن از فایله که به این شکل :

logfile=_wfopen(FileDir,_TEXT("a,ccs=UTF-8"));


سلام
موقع که اینطوری فایل رو باز می کنم تابع fgets نمی تونه بخونه و یه خطای می ده.
من از c++ borland استفاده می کنم در اونجا تابعی به اسم AnsiToUtf8 وجود اما این تابع درست کار نمیکنه؟
کسی راه دیگه ای سراغ نداره؟:افسرده:

vasilopita
چهارشنبه 17 مهر 1392, 14:28 عصر
سلام
موقع که اینطوری فایل رو باز می کنم تابع fgets نمی تونه بخونه و یه خطای می ده.
من از c++ borland استفاده می کنم در اونجا تابعی به اسم AnsiToUtf8 وجود اما این تابع درست کار نمیکنه؟
کسی راه دیگه ای سراغ نداره؟:افسرده:

بحای fgets از fgetws استفاده کن

hamedre81
چهارشنبه 17 مهر 1392, 19:37 عصر
سلام
باز هم نشد
اصلا وقتی ccs=UTF-8 رو می زارم تابع _wfopen نمی تونه فایل رو باز کنه؟
111695
میشه یه نمونه بزارید که کار کنه؟:چشمک:

بعد یه سوال دیگه
فرق fgets و fgetws در چیه؟

vasilopita
پنج شنبه 18 مهر 1392, 08:59 صبح
شرمنده اون بالا اشتباهی گفتم::لبخند:


اگه منظورت خوندن از فایله که به این شکل :

1
logfile=_wfopen(FileDir,_TEXT("a,ccs=UTF-8"));
بجای a از r استفاده کن.


میشه یه نمونه بزارید که کار کنه؟:چشمک:
#include <iostream>
#include <fstream>
#include <tchar.h>
using namespace std;


void main()
{
wchar_t buffer[_MAX_PATH]=L"\0";
FILE* readfile,* writefile;
readfile=_wfopen(_TEXT("d:\\text2.txt"),_TEXT("r,ccs=UTF-8"));
if(readfile)
while(!feof(readfile))
{
fread(buffer,sizeof(wchar_t),_MAX_PATH-1,readfile);
writefile=_wfopen(_TEXT("d:\\text3.txt"),_TEXT("a,ccs=UTF-8"));
if(writefile)
fwrite(buffer,sizeof(wchar_t),wcslen(buffer),write file);
fclose(writefile);
}
fclose(readfile);
}

بعد یه سوال دیگه فرق fgets و fgetws در چیه؟
http://msdn.microsoft.com/en-us/library/vstudio/c37dh6kf(v=vs.120).aspx

از اینجا هم می تونی اطلاعات بیشتری رو کسب کنی!
http://barnamenevis.org/showthread.php?208525-%D8%AE%D9%88%D9%86%D8%AF%D9%86-%D9%88-%D9%86%D9%88%D8%B4%D8%AA%D9%86-%D8%B1%D8%B4%D8%AA%D9%87-%D9%81%D8%A7%D8%B1%D8%B3%D9%8A-%D8%A7%D8%B2-%D8%AF%D8%B1-%D9%81%D8%A7%D9%8A%D9%84