近期用到这个函数,无奈没有找到 delphi 自带的,网上找了下 有类似的,没有现成的,我需要的是 支持 “\u4f00 ” 这种格式的,即前面带标准的 “\u” 于是改造了一下。
下面是 解码 函数:
方便有需要的人吧,我自己也需要^_^
/// <summary>
/// // Unicode转汉字 ,支持自动过滤非 unicode编码,即非 unicode编码不转换
/// 只支持 标准的 类型 \u4e00 这种格式的 转换, 以\u 开头的
/// code by 猿哥哥 2015-2-11
/// </summary>
function TMyEncode.UnicodeToChinese(inputstr:string):string;
var
i:Integer;
index:Integer;
temp,top,last:string;
begin
index:=;
while index>= do
begin
index:= inputstr.IndexOf('\u');
if index< then
begin
last:= inputstr;
Result:= Result+ last;
Exit;
end;
top:= Copy(inputstr,,index); //取出 编码字符前的 非 unic 编码的字符,如数字
temp:= Copy(inputstr,index+,);//取出编码,包括 \u ,如\u4e3f
Delete(temp,,);
Delete(inputstr,,index+);
result:= Result+ top+ WideChar( StrToInt('$'+ temp)) ;
end;
end;