delphi中的編碼轉換

2021-04-01 01:55:32 字數 1997 閱讀 9665

function unicodeencode(str:string;codepage:integer):widestring;

varlen:integer;

begin

len:=length(str)+1;

setlength(result,len);

len:=multibytetowidechar(codepage,0,pchar(str),-1,pwidechar(result),len);

setlength(result,len-1); //end is #0

showmessage(result);

end;

function unicodedecode(str:widestring;codepage:integer):string;

varlen:integer;

begin

len:=length(str)*2+1;  //one for #0

setlength(result,len);

len:=widechartomultibyte(codepage,0,pwidechar(str),-1,pchar(result),len,nil,nil);

setlength(result,len-1);

end;

function gb2big5(str:string):string;

begin

setlength(result,length(str));

lcmapstring(getuserdefaultlcid,lcmap_traditional_chinese,

pchar(str),length(str),

pchar(result),length(result));

result:=unicodedecode(unicodeencode(result,936),950);

end;

function big52gb(str:string):string;

begin

str:=unicodedecode(unicodeencode(str,950),936);

setlength(result,length(str));

lcmapstring(getuserdefaultlcid,lcmap_simplified_chinese,

pchar(str),length(str),

pchar(result),length(result));

end;

//關鍵使用了unicodetoutf8這個函式

function utf8encode(const ws: widestring): utf8string;

varl: 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;

procedure tform1.button1click(sender: tobject);

var y:widestring;

x:string;

begin

y:='i am 錢波';

x:=format('%d',[length(y)]);

showmessage(x);

y:=unicodeencode(edit1.text,cp_acp);

showmessage(y);

end;

Delphi10 2utf8的編碼轉換

delphi中的text轉換為utf8格式的使用如下 procedure tform22.bt1click sender tobject var s string begin s edit1.text 你好。abc123 edit2.text utf8encode s 你好。abc123 end 一...

delphi中URL的漢字編碼

show.asp?sort 全部 sortlevel 1 gorq 供 n 5 sitename 全部 img yes imgfile images dot g.gif 在delphi2010中,因為引入unicode的緣故,預設的成了3個 xx,導致我的程式出現問題,找了半天,每一個函式能夠實現全...

Delphi中處理URL編碼解碼

delphi中處理url編碼解碼 一 url簡介 url是網頁的地址,比如 瀏覽器通過 url 從 web 伺服器請求頁面。由於 url字串常常會包含非ascii字元,url在傳輸過程中,往往出現錯誤。因此,可以將非字串字元,讓一些特殊ascii字元組合,代替非ascii字元。這就是編碼轉換,當字串...

jsp中的編碼轉換

通常,在涉及到中文的 頁面中,要根據不同的情形進行相應的編碼變換 要使 頁面能正確顯示中文,在 頁面中加入 page contenttype text html charset gb2312 要使jsp頁面正確接收來自上一個頁面提交的含中文資訊的表單,以及從資料庫或是檔案中正確讀出中文資訊,就需要將...

C 中的編碼轉換

好長時間沒有寫編碼轉換.今天寫了下特地放上來供大家以後用到就不用去找了.將一個字串轉換成unicode型別的base64編碼的字串如下 convert.tobase64string encoding.unicode.getbytes unicodestring 紅色標明的是還可以轉換bigendia...