全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3249
推到 Plurk!
推到 Facebook!

寫入一個Unicode格式的檔案

尚未結案
bluemt
一般會員


發表:2
回覆:1
積分:0
註冊:2007-01-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-19 13:19:43 IP:210.202.xxx.xxx 訂閱
我想要寫一個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
編輯記錄
bluemt 重新編輯於 2007-09-19 13:25:33, 註解 無‧
bluemt 重新編輯於 2007-09-19 13:33:11, 註解 無‧
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-22 19:24:27 IP:60.248.xxx.xxx 訂閱
直覺加初淺判斷是因為「;」分號字元造成的,這符號是不是你手動加入而非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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-26 13:27:57 IP:210.202.xxx.xxx 訂閱
不是耶....
全部資料都是由Tnt的元件取出直接寫的..沒有去改中間的資料
感覺上像是「;」和「上」這個字組起來不知道什麼原因造成 @@
和其他字組起來就不會...
而且不知道怎麼造出換行字元給unicode檔案...
不知道是不是有什麼現成的API可以用...

===================引 用 aftcast 文 章===================
直覺加初淺判斷是因為「;」分號字元造成的,這符號是不是你手動加入而非MEMO上輸入的?
若是自己加入,則要小心UNICODE是16位元,不是8位元。
------
Hi
系統時間:2024-04-27 3:00:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!