D6的Utf8Decode不能还原Utf8Encode的资料? |
答題得分者是:RaynorPao
|
mustapha.wang
資深會員 發表:89 回覆:409 積分:274 註冊:2002-03-13 發送簡訊給我 |
我用Utf8Encode编码的资料,用Utf8Decode不能正确还原,难道是Delphi的Bug吗?
对一般的资料,如简单的几个汉字等,可以,但请用各位我的资料档测试一下:
http://delphi.ktop.com.tw/loadfile.php?TOPICID=10639509&CC=237951
procedure TForm1.Button5Click(Sender: TObject); var MS:TMemoryStream; s,s2:string; begin MS:=TMemoryStream.Create; try MS.LoadFromFile('D:\wxh\pas_write_ansi.txt'); SetLength(s,MS.Size); Move(MS.Memory^,S[1],MS.Size); s2:=Utf8Encode(s); s:=Utf8Decode(s2); MS.Clear; MS.Write(s[1],Length(s)); MS.Position:=0; MS.SaveToFile('D:\wxh\pas_write_ansi2.txt'); finally MS.Free; end; end;然后用UltraEdit来查看两个文件,会不一样!? 还是说,这种乱七八糟的资料不能用Utf8Encode/Utf8Decode来处理? 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人 |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我用Utf8Encode编码的资料,用Utf8Decode不能正确还原,难道是Delphi的Bug吗? 对一般的资料,如简单的几个汉字等,可以,但请用各位我的资料档测试一下: http://delphi.ktop.com.tw/loadfile.php?TOPICID=10639509&CC=237951procedure TForm1.Button5Click(Sender: TObject); var MS:TMemoryStream; s,s2:string; begin MS:=TMemoryStream.Create; try MS.LoadFromFile('D:\wxh\pas_write_ansi.txt'); SetLength(s,MS.Size); Move(MS.Memory^,S[1],MS.Size); s2:=Utf8Encode(s); s:=Utf8Decode(s2); MS.Clear; MS.Write(s[1],Length(s)); MS.Position:=0; MS.SaveToFile('D:\wxh\pas_write_ansi2.txt'); finally MS.Free; end; end;然后用UltraEdit来查看两个文件,会不一样!? 还是说,这种乱七八糟的资料不能用Utf8Encode/Utf8Decode来处理? 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听 mustapha.wang 你好: (1)我不太清楚你要轉換的資料內容是什麼?? ( > > --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
mustapha.wang
資深會員 發表:89 回覆:409 積分:274 註冊:2002-03-13 發送簡訊給我 |
引言: (1)我不太清楚你要轉換的資料內容是什麼?? ( > >>< face="Verdana, Arial, Helvetica"> 我的资料是资料库里的Blob栏位的资料,也就是没有什么编码的,"乱七八糟", 现在用TWriter.WriteString来写,Delphi6/7会用Utf8Encode来转,用TReader.ReadString来读出时,Delphi6/7会用Utf8Decode来转回,然后就发现没有正确转回。 那么,就是 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10543105&CC=235795"> 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人 |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我的资料是资料库里的Blob栏位的资料,也就是没有什么编码的,"乱七八糟", 现在用TWriter.WriteString来写,Delphi6/7会用Utf8Encode来转,用TReader.ReadString来读出时,Delphi6/7会用Utf8Decode来转回,然后就发现没有正确转回。 那么,就是>>< face="Verdana, Arial, Helvetica"> mustapha.wang 你好: 是的,這兩個 function 只能轉換 UNICODE, UTF8 的編碼資料 --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |