寫入一個Unicode格式的檔案 |
尚未結案
|
bluemt
一般會員 ![]() ![]() 發表:2 回覆:1 積分:0 註冊:2007-01-22 發送簡訊給我 |
我想要寫一個unicode格式的檔案(檔名不為unicode)
而要寫入的資料就是從 TNT Unicode Control 元件取得WideString寫入 因為不知道怎麼指定檔案為Unicode格式, 所以我自行在檔頭先塞入「FFFE」 來使這檔案變為Unicode格式 不過產生的檔案卻有些地方變成怪怪的... 如「2007/09/19;bluemt的会议;上午 10:08;上午 10:09」會變成 「2007/09/19;bluemt的会议;䡎⁓ 㨀 㠀㬀ഀ上午 10:09」 好像「;上」這個字會錯掉, 另外換行字元也會有錯誤 不知道該怎麼克服這個問題.. 希望有前輩能指點一下方法..謝謝 我的程式如下 (實際應用時是用TntListView..不是用TntMemo,用TntMemo只是另開Project時方便測試而已) [code cpp] try { wchar_t str[500]; char unicode[2]; unicode[0] = 0xFF; unicode[1] = 0xFE; FILE *Logfp; WideString line; if ((Logfp = fopen( "C:\\112.txt", "wt")) == NULL) return; wcscpy(str, TntMemo1->Text.c_bstr()); fwrite(unicode, sizeof(char), 2 ,Logfp); fwrite(str, sizeof(wchar_t), wcslen(str),Logfp); fclose(Logfp); } catch (...) { } [/code]
------
Hi |
aftcast
站務副站長 ![]() ![]() ![]() ![]() ![]() 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
直覺加初淺判斷是因為「;」分號字元造成的,這符號是不是你手動加入而非MEMO上輸入的?
若是自己加入,則要小心UNICODE是16位元,不是8位元。 ===================引 用 bluemt 文 章=================== 我想要寫一個unicode格式的檔案(檔名不為unicode) 而要寫入的資料就是從 TNT Unicode Control 元件取得WideString寫入 因為不知道怎麼指定檔案為Unicode格式, 所以我自行在檔頭先塞入「FFFE」 來使這檔案變為Unicode格式 不過產生的檔案卻有些地方變成怪怪的... 如「2007/09/19;bluemt的会议;上午 10:08;上午 10:09」會變成 「2007/09/19;bluemt的会议;䡎⁓ 㨀 㠀㬀ഀ上午 10:09」 好像「;上」這個字會錯掉, 另外換行字元也會有錯誤
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
bluemt
一般會員 ![]() ![]() 發表:2 回覆:1 積分:0 註冊:2007-01-22 發送簡訊給我 |
不是耶....
全部資料都是由Tnt的元件取出直接寫的..沒有去改中間的資料 感覺上像是「;」和「上」這個字組起來不知道什麼原因造成 @@ 和其他字組起來就不會... 而且不知道怎麼造出換行字元給unicode檔案... 不知道是不是有什麼現成的API可以用... ===================引 用 aftcast 文 章=================== 直覺加初淺判斷是因為「;」分號字元造成的,這符號是不是你手動加入而非MEMO上輸入的? 若是自己加入,則要小心UNICODE是16位元,不是8位元。
------
Hi |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |