【问题标题】:HTTP Response encoding issueHTTP 响应编码问题
【发布时间】:2021-07-01 10:48:19
【问题描述】:

我正在尝试使用 https URL 上的 GET 请求从网站 (https://www.stocknet.fr/accueil.asp) 获取 CSV 文件。我通过 Postman 得到的响应如下所示:

Type;Groupe Acc�s;Code;EOTP autoris�s;Familles EOTP autoris�es;Nom;Pr�nom;Adresse Mail;Agences autoris�es;D�p�ts autoris�s;Date cr�ation;Fournisseurs autoris�s;Classes autoris�es;Familles article

但是当直接访问 URL 时,我的浏览器会自动下载文件,并在 windows 上以正确的编码打开它:

Type;Groupe Accès;Code;EOTP autorisés;Familles EOTP autorisées;Nom;Prénom;Adresse Mail;Agences autorisées;Dépôts autorisés;Date création;Fournisseurs autorisés;Classes autorisées;Familles article

当我检查网站 HTML 时,我可以看到标签 <meta charset="ISO-8859-1" />

我尝试使用这样的标题:

Accept-Charset: ISO-8859-1
Accept-Charset: UTF-8
Content-Type: text/csv; charset=ISO-8859-1
Content-Type: text/csv; charset=UTF-8
Content-Encoding: gzip
Content-Encoding: compress
Content-Encoding: deflate
Content-Encoding: identity
Content-Encoding: br

似乎没有返回正确编码的响应。

知道我做错了什么吗?请注意,无论我尝试获取网站的哪个页面,都会得到错误的编码。不仅仅是 CSV 文件。

【问题讨论】:

    标签: rest http encoding postman response


    【解决方案1】:

    服务器正在返回 iso-8859-1 中的内容并告诉您它是 iso-8859-1。您不会说服服务器返回任何其他内容。您的网络浏览器包含转换编码的代码。如果你想让内容采用不同的编码,你必须自己转换它。

    有关如何执行此操作的方法,请参阅: Best way to convert text files between character sets?

    【讨论】:

    • 我明白我错了!谢谢。我正在尝试使用 PL/SQL 对其进行转换,但我似乎无法使其工作。尝试类似convert(l_response, 'WE8ISO8859P1', 'WE8MSWIN1252') .. 你有什么想法吗?
    • @Kabulan0lak 我不懂 PL/SQL 也没有办法尝试,抱歉。看起来这可能是一个新问题。为什么 1252 作为 dest 呢?我认为这不能表达è。你不想要 UTF8 吗?
    • 对应我的Oracle实例的NLS参数。感谢你做的一切!如果真的需要,我将尝试更多的东西然后发布另一个问题。
    猜你喜欢
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多