将 PHP 默认编码设置为 UTF-8

2022-08-30 13:42:27

在“PHP说明书”中,他们说(p.589)要将传出数据的字符编码正确设置为UTF-8,有必要将default_encoding配置编辑为utf-8

但是,我在文件php.ini中找不到此配置。我应该简单地添加一行吗?default_encoding = "utf-8"

我确实有一个;d efault_charset = “iso-8859-1”。如您所见(),现在它尚未激活。我应该删除分号并将其设置为 ?这是否考虑了默认编码?;"utf-8"

我还发现了其他我不知道该怎么做的编码指令:

[iconv]
;iconv.input_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1
...
; http://php.net/exif.encode-unicode
;exif.encode_unicode = ISO-8859-15
...
;mssql.charset = "ISO-8859-1"
...
;exif.encode_unicode = ISO-8859-15

有什么理由我不应该简单地用它们替换它们吗?utf-8


答案 1

您应该将您设置为 UTF-8:default_charset

default_charset = "utf-8"

(PHP Cookbook中可能有一个拼写错误,如果他们要求你改变 - 我从未听说过它。default_encoding

如果要输出 UTF-8 编码字符,您还需要确保将 Web 服务器设置为输出 UTF-8。在 Apache 中,这可以通过 httpd.conf 文件进行设置:

AddDefaultCharset UTF-8

至于修改 、和编码设置,您可能不需要设置这些设置(无论如何,您的设置都已注释掉),但无论如何,最好将它们全部更改为 UTF-8。iconvexifmssql


答案 2

修改行

;default_charset = "iso-8859-1"

阅读

default_charset = "utf-8"

关于其他选项,请勿触摸它们。避免默认设置,始终显式设置您所做的一切的编码

  • 数据库连接,
  • 读取和写入文件,
  • 使用 iconv 进行转换。

另外,请注意保存PHP文件的编码,确保它们采用UTF-8格式,特别是如果它们包含要显示或比较的字符串。


推荐