TIdHttp.Get转换丹麦语和瑞典语字母

时间:2013-10-08 08:32:17

标签: delphi delphi-xe indy

我遇到了一个奇怪的问题,我无法找到任何答案。

我们使用德里XE1和TidHttp.Get(...)转换这些字母:

æøåÆØÅäöÄÄ

给这些错误的信件: aoa AOA ao AO

最终导致我们错误的网址的原因。我怀疑可能涉及一些unicode问题,但有没有人知道如何解决这个问题?我在调用TidHTTP.Get(...)时提供的URL是正确的,但目标服务器收到错误的字母。 Indy将这些字母转换成一些如何。

我无法发布任何编码样本。

祝你好运, 布莱恩安德森

1 个答案:

答案 0 :(得分:1)

返回TIdHTTP.Get()的{​​{1}}版本使用服务器响应中指定的字符集将服务器的原始数据转换为Unicode,如果没有检测到字符集,则返回默认值。您遇到的症状是由使用错误的字符集将原始数据转换为Unicode引起的。由于您没有显示实际的HTTP响应数据,因此很难判断HTTP响应或String是否有问题。但是,XE1有点老了,自那时起Indy的字符集处理方式发生了变化,所以你应该升级到Indy的最新development snapshot,看看问题是否还在继续。