delphi怎么把漢字轉為GB2312,例如“武漢”變成%CE%E4%BA%BA或者轉成CEE4BABA,如果可以轉一句話就更好了,支持中英文和標點符號混轉換
uj5u.com熱心網友回復:
typeGB2312String = type AnsiString(936);
var
S: string;
S1: GB2312String;
i: integer;
begin
S := '武漢';
S1 := S;
for i := 0 to Length(S1) - 1 do
write(IntToHex(PByte(S1)[i], 2));
end;
uj5u.com熱心網友回復:
如果版本為XE的,可以這樣Function StrToGB2312(sStr: String): string;
Var
i, lLen: integer;
lAStr:AnsiString;
Begin
lAStr:=AnsiString(sStr); //xe 默認為widestring
lLen := Length(lAStr);
Result:='';
For i := 1 To lLen Do
Result := Result + IntToHex(Ord(lAStr[i]), 2);
End
uj5u.com熱心網友回復:
AnsiString必須指定代碼頁936/1386/54936,否則在默認非簡體中文的系統上運行會轉換錯誤。uj5u.com熱心網友回復:
type
Tz = record
case Byte of
0: (str1: array[0..1] of WideChar);
1: (str2: string[4]);
2: (strcode1: word;
strcode2: word);
end;
procedure TForm2.Button11Click(Sender: TObject);
var
a: tz;
begin
a.str2 := '武漢';
ShowMessage(format('%s,%s',[IntToHex(a.strcode1,2), IntToHex(a.strcode2,2)]));
//CE04,BAE4
a.str1[0] := widestring('武')[1];
a.str1[1] := widestring('漢')[1];
ShowMessage(format('%s,%s',[IntToHex(a.strcode1,2), IntToHex(a.strcode2,2)]));
//6B66,6C49
end;
這樣可以嗎?只是兩次出來的結果不一樣。
uj5u.com熱心網友回復:
// URL地址轉換
function UrlEncode(Url: string): string;
var
i: Integer;
raws: RawByteString;
begin
Result := '';
raws := Utf8Encode(Url);
for i := 1 to Length(raws) do
case raws[i] of
'!', '#', '$', '&', '''', '(', ')', '*', '+', ',', '-', '.', '/', ':',
';', '=', '?', '@', '_', '~', '0' .. '9', 'a' .. 'z', 'A' .. 'Z':
Result := Result + raws[i];
else
Result := Result + '%' + IntToHex(Ord(raws[i]), 2);
end;
end;
uj5u.com熱心網友回復:
uses IdURI;
TIdURI.ParamsEncode('武漢')
uj5u.com熱心網友回復:
試試URLEncode('武漢')轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47719.html
標籤:語言基礎/算法/系統設計
