我发现这个WideStringToString()
function可以将Unicode字符串转换为ANSI字符串。我需要将àèéìòù
之类的字符串转换为aeeiou
,因此应删除所有重音符号。我认为可以使用该功能完成操作,但是我应该使用哪个代码页?
答案 0 :(得分:4)
当前执行此操作的方法是使用System.SysUtils.TEncoding。一个例子:
function RemoveAccents(const Src: string): string;
var
Bytes: TBytes;
begin
Bytes := TEncoding.ASCII.GetBytes(Src);
Result := TEncoding.ASCII.GetString(Bytes);
end;
procedure Test;
begin
Writeln(RemoveAccents('Ŧĥε qùíçķ ƀřǭŵņ fôx ǰűmpεď ōvêŗ ţħě łáƶÿ ďơǥ'));
Writeln(RemoveAccents('àèéìòù'));
end;
由于某些未知的原因,这无法转换epsilon(ε),因此输出为:
Th? quick brown fox jump?d over the lazy dog
aeeiou