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
...全文
1063 1 点赞 打赏 收藏 举报
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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】湖
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi
加入

4972

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2017-11-17 04:38
社区公告
暂无公告