无效编码:ISO-8859-1

无效编码:ISO-8859-1

我尝试使用Stripe webhook,但我的端点出现错误:Invalid encoding: ISO-8859-1

Apache2与 Debian 一起使用。

我尝试添加以下内容(但没有成功):

  • IndexOptions +Charset=UTF-8进入我的.htaccess
  • AddDefaultCharset utf-8进入/etc/apache2/httpd.conf
  • AddDefaultCharset utf-8进入/etc/apache2/apache2.conf
  • AddDefaultCharset utf-8进入/etc/apache2/sites-enabled/mydomain.com.conf
  • AddDefaultCharset utf-8进入/etc/apache2/conf-enabled/charset.conf

Apache2在每次测试之间重新启动。

编辑:我检查了我的php.ini默认字符集= UTF-8。我正在使用 Symfony 框架。

答案1

AddDefaultCharset指令不会更改内容的编码,它只会更改响应标头(例如Content-Type: text/html; charset=UTF-8)。一般来说,如果您的 HTML 有一个元标记,例如<meta charset="utf-8">和 实际内容,则不需要它以 UTF-8 编码。

https://httpd.apache.org/docs/current/mod/core.html#adddefaultcharset

text/plain当且仅当响应的 content-type 为或时,此伪指令指定要添加到响应的媒体类型字符集参数(字符编码的名称)的默认值text/html。这应该覆盖通过元素在响应正文中指定的任何字符集META,尽管确切的行为通常取决于用户的客户端配置。设置为AddDefaultCharset Off禁用此功能。AddDefaultCharset On启用默认字符集iso-8859-1
...

而且...

AddDefaultCharset仅当已知其适用的所有文本资源都采用该字符编码并且单独标记其字符集太不方便时才应使用。

您应该检查内容的编码。如果您使用 PHP,请检查以下设置默认字符集在你的php.ini

您可以运行fileto 命令来获取文件编码的线索。

例子:

$ file *.html
iso.html:  HTML document, ISO-8859 text
utf8.html: HTML document, UTF-8 Unicode text

相关内容