我正在使用Delphi XE3实现REST服务。实际上是在访问:
var metaData: TDSInvocationMetadata;
metaData.ResponseContent:= output;
生成XML输出。不幸的是,经过数小时测试各种UTF8到Unicode转换方法后,我仍然无法获得正确的UTF8输出。以下是我的示例:
function TServerMethods1.UTF8TEST(Value: string): string;
var metaData: TDSInvocationMetadata;
output: String;
begin
metaData:= GetInvocationMetadata;
output:= '<element><inside name="skúška" /></element>';
metaData.ResponseCode:= 200;
metaData.ResponseContentType:= 'text/xml; charset=utf-8';
metaData.ResponseContent:= utf8encode(output);
end;
在通过互联网浏览器调用后:http://localhost:8080/datasnap/rest/TServerMethods1/UTF8TEST,我收到了编码错误报告。将特殊字符'úš'删除并将名称设置为'skuska'后,一切似乎都正常了。
有人能帮忙如何正确获取UTF8编码输出吗?