請問有高手做過Unicode與AnsiString間的轉換嗎???? |
答題得分者是:隆妹
|
z858328y
一般會員 發表:7 回覆:9 積分:3 註冊:2006-08-29 發送簡訊給我 |
各位高手:
小弟最近在做個案子,是有關於讀取一個Unicode的檔案的。可是我的程式碼無論如何都沒有辦法把Unicode的檔案給讀進來,在網路上查的方法也都用過了,但是我讀字串用的buffer始終是空的(在檔案中有中文也有英文,英文可以讀成雙字元格式,中文就是亂碼,最後轉到WideString及AnsiString就沒有東西了),希望有經驗的可以幫個忙,看看問題在哪囉,謝謝。附上小弟的程式碼及程式(BCB5) void __fastcall CLanguage::GetText() { wchar_t cData[1000]; int nCount=0; FILE *fp; char str[1000]; AnsiString strNo="",strDetect,strSub; CStringW wstr; if( (fp = fopen(m_strFileName.c_str(),"r")) != NULL ) { while( fgetws(cData,1000,fp) != NULL ) { try{ WideCharToMultiByte(CP_ACP,0,cData,100,(LPSTR)str,100,NULL,NULL); //strDetect.WideChar(str,100); //wsprintf(tc,"%C",cData); str = CStringW(cData); strDetect = AnsiString(str); //strDetect = AnsiString(cData,1000); strDetect = strDetect.Delete(strDetect.Pos("\n"),strDetect.Length()); if( strDetect.Pos("[") == 0 ) { strSub = strDetect.SubString(1,strDetect.Pos("\t")-1); m_strLanguage[(strSub.ToInt()-101)] = strDetect.Delete(1,strDetect.Pos("\t")); nCount ; } } catch(...){ fclose(fp); } } } else ShowMessage("Can't not open file"); fclose(fp); } |
隆妹
一般會員 發表:6 回覆:12 積分:8 註冊:2003-10-02 發送簡訊給我 |
|
z858328y
一般會員 發表:7 回覆:9 積分:3 註冊:2006-08-29 發送簡訊給我 |
|
disabledman
一般會員 發表:0 回覆:5 積分:6 註冊:2004-02-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |