解码和比较带重音字符的JSON

时间:2019-04-14 21:46:46

标签: json delphi

我有一个IntraWeb应用程序。在HTML模板中,我使用JavaScript创建了JSON文档。

此JSON发送到IntraWeb后端,我收到的JSON为:

{"order":"Razão Social"}

我解析JSON并将"Razão Social"放入变量_order中。

我的问题是,当我尝试将该值与字符串进行比较时,它失败了。我的编码有问题。线

if uppercase(_order) = 'RAZÃO SOCIAL' then

总是假的。

我设置了一个断点,我可以看到重音字符不正确。

image

 s:=aParams.Values['xorder'];
 if s<>'' then begin
 jso := TJSonObject.ParseJSONValue(TEncoding.UTF8.GetBytes(s),0) as TJSONObject;
 try
  jso.TryGetValue<string>('order',_order);
 finally
  jso.free;
 end;
end;

if uppercase(_order) = 'RAZÃO SOCIAL' then
 _order:='Order by A.razao_social ';

1 个答案:

答案 0 :(得分:2)

UpperCase仅支持ASCII字符。而是使用知道Unicode的AnsiCompareTextAnsiSameText不敏感地比较字符串大小写。