如何存檔時,設定是用UTF-8格式存檔 |
尚未結案
|
lesley
一般會員 發表:3 回覆:9 積分:2 註冊:2004-03-29 發送簡訊給我 |
各位先進 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46228
是把ANSI 轉成 unicode 那如果我要把ANSI 轉成 UTF-8 格式
我把const 改成 EFBBBF ,如下 : function TBrMtkForm.WriteWideString2File(filename: string; ws: WideString) : Boolean;
const
WideBOM_LSB_First = Widechar(#$EFBBBF);
var
wf: WideString;
f: TFileStream;
i: integer;
begin
Result := false;
wf := WideBOM_LSB_First;
f:= TFileStream.Create(filename,fmCreate);
try
f.write(wf[1],2);
f.Write(PwideChar(ws)^, length(ws)*sizeof(WideChar));
Result:= true;
finally
f.free;
end;
end; 但我產生的檔案不是UTF-8的格式?? 請各位指點, THANKS!
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
Delphi 裡有個 function AnsiToUtf8(const S: string): UTF8String;
其 source 如下:
function Utf8Encode(const WS: WideString): UTF8String; var L: Integer; Temp: UTF8String; begin Result := ''; if WS = '' then Exit; SetLength(Temp, Length(WS) * 3); // SetLength includes space for null terminator L := UnicodeToUtf8(PChar(Temp), Length(Temp) 1, PWideChar(WS), Length(WS)); if L > 0 then SetLength(Temp, L-1) else Temp := ''; Result := Temp; end; function AnsiToUtf8(const S: string): UTF8String; begin Result := Utf8Encode(S); end; |
lesley
一般會員 發表:3 回覆:9 積分:2 註冊:2004-03-29 發送簡訊給我 |
引言: Delphi 裡有個 function AnsiToUtf8(const S: string): UTF8String; 其 source 如下:Dear hagar, 謝謝您~~ 您給我的那個function 是不是 D7 的... D5 不接受UTF8String type ...function Utf8Encode(const WS: WideString): UTF8String; var L: Integer; Temp: UTF8String; begin Result := ''; if WS = '' then Exit; SetLength(Temp, Length(WS) * 3); // SetLength includes space for null terminator L := UnicodeToUtf8(PChar(Temp), Length(Temp) 1, PWideChar(WS), Length(WS)); if L > 0 then SetLength(Temp, L-1) else Temp := ''; Result := Temp; end; function AnsiToUtf8(const S: string): UTF8String; begin Result := Utf8Encode(S); end; |
lesley
一般會員 發表:3 回覆:9 積分:2 註冊:2004-03-29 發送簡訊給我 |
引言:引言: Delphi 裡有個 function AnsiToUtf8(const S: string): UTF8String; 其 source 如下:Dear hagar, 謝謝您~~ 您給我的那個function 是不是 D7 的... D5 不接受UTF8String type ... 我直接用D7去試作...THANKS!!function Utf8Encode(const WS: WideString): UTF8String; var L: Integer; Temp: UTF8String; begin Result := ''; if WS = '' then Exit; SetLength(Temp, Length(WS) * 3); // SetLength includes space for null terminator L := UnicodeToUtf8(PChar(Temp), Length(Temp) 1, PWideChar(WS), Length(WS)); if L > 0 then SetLength(Temp, L-1) else Temp := ''; Result := Temp; end; function AnsiToUtf8(const S: string): UTF8String; begin Result := Utf8Encode(S); end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |