我必须能够使用Publisher and Location
下载xml
文件(我知道ISO-8859-1
更好,但是我们的合作伙伴对编码有严格的要求,我们不能强迫他更改他的政策)。
服务器背景:
控制器返回带有正确字符集的响应:
UTF-8
看起来非常好(至少在Chrome DevTools中有正确的响应标头):
但是问题在于该文件以return (new Response($xml->content(), Response::HTTP_CREATED, ['Content-Type' => $xml->contentType()]))
->setCharset($xml->charset());
编码存储在文件系统中。
UTF-8
,并且在浏览器中打开XML文件后,其呈现不正确:
$ file --mime test.xml
test.xml: application/xml; charset=utf-8
姓氏必须为Müller,但显示错误。如果我将此文件的编码更改为预期的编码,则它显示正确:
<INSIGMA>
<AktuarMed>
<Person>
<Name>Hans Müller</Name>
<Surname>Müller</Surname>
<Forename>Hans</Forename>
</Person>
</AktuarMed>
</INSIGMA>
TL; DR:问题是
为什么此文件完全以$ iconv -f UTF-8 test.xml -t ISO-8859-1 > test.xml
$ file --mime test.xml
test.xml: application/xml; charset=iso-8859-1
编码存储,如果服务器响应,则应使用utf-8
字符集?
ISO-8859-1
字符集下载文件?或如何解决此问题以及应该在哪一步找到解决方案?
答案 0 :(得分:1)
您可以尝试以下操作:
之后,您可能会看到问题出在哪里。