XE3随笔16:将字符串转换成 UTF8 编码的函数

这种转换一般用于网页地址; 我不知道 Delphi 是不是有现成的函数, 用到了就写了一个.


//函数:
function ToUTF8Encode(str: string): string;
var
  b: Byte;
begin
  for b in BytesOf(UTF8Encode(str)) do
    Result := Format(‘%s%%%.2x‘, [Result, b]);
end;

//测试:
var
  str: string;
begin
  str := ‘大雄‘;
  str := ToUTF8Encode(str);
  ShowMessage(str); //%E4%B8%87%E4%B8%80
end;


为 "小月124" 写了个反向函数:


function ToUTF8Decode(const str: string): string;
var
  List: TStrings;
  tmpStr: AnsiString;
  i: Integer;
begin
  List := TStringList.Create;
  ExtractStrings([‘%‘], [‘%‘], PChar(str), List);
  SetLength(tmpStr, List.Count);
  for i := 0 to List.Count - 1 do
    Byte(tmpStr[i+1]) := StrToInt(‘$‘ + List[i]);
  List.Free;
  Result := UTF8Decode(tmpStr);
end;

{ 调用测试 }
procedure TForm1.FormCreate(Sender: TObject);
var
  s1: AnsiString;
  s2: WideString;
begin
  s1 := ‘%E4%B8%87%E4%B8%80‘;
  s2 := ToUTF8Decode(s1);
  ShowMessage(s2); { 大雄 }
end;
时间: 2024-12-13 14:45:19

XE3随笔16:将字符串转换成 UTF8 编码的函数的相关文章

字符串转换成utf-8编码

a.将字符串转换成utf-8编码的字节,并输出,然后将该字节在转换成utf-8编码字符串,在输出 b.将字符串转换后才能gbk编码的字节,并输出,然后将该字节在转换成gbk编码字符串,在输出 def main():     n = "老男孩"     nBytes_utf = n.encode('utf-8')     nStr_utf = nBytes_utf.decode('utf-8')     print(nBytes_utf)     print(nStr_utf)     

LoadRunner 如何将英文的字符串转换成UTF-8格式的字符串?

7.48  如何手动转换字符串编码 1.问题提出 如何将英文的字符串转换成UTF-8格式的字符串? 2.问题解答 可以使用lr_convert_string_encoding函数将字符串从一种编码手动转换为另一种编码(UTF-8.Unicode或本地计算机编码). 该函数的语法如下. lr_convert_string_encoding(char * sourceString, char * fromEncoding, char * toEncoding, char * paramName) 该

使用EJS脚本将字符串转换成Base64编码

此博客为9925.org的镜像,登录9925.org可以查看到最新博文. 原文出处:http://ily.so/VVfyim 由于EJS脚本解释器是完美支持 ECMA-262 标准的,因此EJS脚本是JavaScript的真超集. 说了一段废话后,我其实是想说我在网上copy了一段JS支持的将字符串转换成Base64编码的代码,不知出处,这里斗胆将代码贴出,如有侵权请联系删除. var Base64 = {     // 转码表     table : [             'A', 'B

将NSString转换成UTF8编码的NSString

在使用网络地址时,一般要先将url进行encode成UTF8格式的编码,否则在使用时可能报告网址不存在的错误,这时就需要进行转换 下面就是转换函数: NSString *urlString= [NSString stringWithFormat:@"http://www.baidu.com]; NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes( kCFAllocatorDefault, (

iOS-将NSString转换成UTF8编码的NSString

在使用网络地址时,一般要先将url进行encode成UTF8格式的编码,否则在使用时可能报告网址不存在的错误,这时就需要进行转换 下面就是转换函数: NSString *urlString= [NSString stringWithFormat:@"http://www.baidu.com]; NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes( kCFAllocatorDefault, (

C#将字符转换成utf8编码 GB321编码转换

public static string get_uft8(string unicodeString) { UTF8Encoding utf8 = new UTF8Encoding(); Byte[] encodedBytes = utf8.GetBytes(unicodeString); String decodedString = utf8.GetString(encodedBytes); return decodedString; } 这边我以big5转换gb2312为例 Encoding

C# string转换成DateTime?(字符串转换成可空日期类型)

[转载] 作者:十有三 出处:http://shiyousan.com/post/ca4a6413-ecb4-4237-baf6-e88e616d18fc PS:此文主要讲述的是可空日期类型和字符串之间的转换,正常类型转换看这篇文章:字符串string类型转换成DateTime类型 最近项目中遇到以前一直困扰的问题,就是如何将string转换成DateTime?这种可空日期类型.以前总是通过编写一堆逻辑代码来进行转换,但是写这些代码感觉非常繁琐.后在网上浏览相关资料,使用NullableConv

iOS 将16进制字符串转换成UIColor

#pragma mark - 将16进制字符串转换成 UIColor - (UIColor *)generateColorObjectWithHex:(NSString *)hexString { unsigned int red = 0, green = 0, blue = 0; NSRange range = {0, 2}; range.location = 0; NSString *redString = [hexString substringWithRange:range]; NSSc

将16进制字符串转换成16进制数据

var tb1 = Tb1.Text; if (string.IsNullOrEmpty(tb1)) { tb1 = "0000"; } var s1 = tb1.Substring(0, 2); var int_1 = Convert.ToInt32(s1, 16); var s2 = tb1.Substring(2, 2); var int_2 = Convert.ToInt32(s2, 16); var bt1 = Convert.ToByte(int_1); var bt2 =