加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi – 将Hi-Ansi字符转换为Ascii等效(é – > e)

发布时间:2020-12-15 10:17:30 所属栏目:大数据 来源:网络整理
导读:Delphi 2007中是否有可用于根据语言环境(代码页)将ANSI表( 127)的高范围内的字符转换为纯ASCII( = 127)中的等效数据的例程? 我知道一些字符不能很好的翻译,但大多数可以,尤其是。在192-255范围内: à→A à→a ?→E ?→e ?→C ?→c – (en dash)→ – (
Delphi 2007中是否有可用于根据语言环境(代码页)将ANSI表(> 127)的高范围内的字符转换为纯ASCII(< = 127)中的等效数据的例程? 我知道一些字符不能很好的翻译,但大多数可以,尤其是。在192-255范围内:
>à→A
>à→a
?→E
?→e
?→C
>?→c
> – (en dash)→ – (连字号 – 可能会更棘手)
> – (em dash)→ – (连字符)

解决方法

WideCharToMultiByte对于指定字符集不支持的任何字符(包括剥离变音符)都进行最佳拟合映射。您可以使用该功能完成所需的操作,并将20127(US-ASCII)作为代码页。
function BestFit(const AInput: AnsiString): AnsiString;
const
  CodePage = 20127; //20127 = us-ascii
var
  WS: WideString;
begin
  WS := WideString(AInput);
  SetLength(Result,WideCharToMultiByte(CodePage,PWideChar(WS),Length(WS),nil,nil));
  WideCharToMultiByte(CodePage,PAnsiChar(Result),Length(Result),nil);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   ShowMessage(BestFit('aàà????–—                        

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读