delphi xe10 utf8 解码问题

pykill8 2017-11-17 04:38:02

delphi xe10 utf8 解码问题
我发一段
32,227,128,144,49,55,53,227,128,145,230,185,150

我转换为sByte: Tbytes;

我用 utf8toAnsi(ansistring(sByte))
会有乱码的现象,请问,要什么解决

xe10
...全文
1437 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
frtrnr 2017-12-27
  • 打赏
  • 举报
回复
测试了很多函数 function CharToWide(const S: String; CodePage: Word): WideString; function WideToChar(const WS: WideString; CodePage: Word): String; function CharToChar(const S: String; CP1, CP2: Word): String; function AnsiToWide(const S: AnsiString): WideString; function WideToUTF8(const WS: WideString): UTF8String; function AnsiToUTF8(const S: AnsiString): UTF8String; function UTF8ToWide(const US: UTF8String): WideString; function WideToAnsi(const WS: WideString): AnsiString; function UTF8ToAnsi(const S: UTF8String): AnsiString; function StringToWideStringEx(const S: string; CodePage: Word): WideString; function WideStringToStringEx(const WS: WideString; CodePage: Word): string; 最后发现是这个:

function UTF8ToWide(const US: UTF8String): WideString;
var
  len: integer;
  ws: WideString;
begin
  Result:='';
  if (Length(US) = 0) then
    exit;
  len:=MultiByteToWideChar(CP_UTF8, 0, PChar(US), -1, nil, 0);
  SetLength(ws, len);
  MultiByteToWideChar(CP_UTF8, 0, PChar(US), -1, PWideChar(ws), len);
  Result:=ws;
end;
你给出的字符串,转化为一个ansistring 字符串后,再使用这个函数,它的结果是: 【175】湖

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧