線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3233
推到 Plurk!
推到 Facebook!

如何存檔時,設定是用UTF-8格式存檔

尚未結案
lesley
一般會員


發表:3
回覆:9
積分:2
註冊:2004-03-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-15 17:20:25 IP:61.222.xxx.xxx 未訂閱
各位先進    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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-15 18:08:10 IP:202.39.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-18 09:58:18 IP:61.222.xxx.xxx 未訂閱
引言: 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;
Dear hagar, 謝謝您~~ 您給我的那個function 是不是 D7 的... D5 不接受UTF8String type ...
lesley
一般會員


發表:3
回覆:9
積分:2
註冊:2004-03-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-20 17:27:31 IP:210.66.xxx.xxx 未訂閱
引言:
引言: 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;
Dear hagar, 謝謝您~~ 您給我的那個function 是不是 D7 的... D5 不接受UTF8String type ... 我直接用D7去試作...THANKS!!
系統時間:2017-12-13 1:54:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!