在“PHP Cookbook”中,他们说(第 589 页)要将传出数据的字符编码正确设置为 UTF-8,需要将 default_encoding 配置编辑为 utf-8。
但是,我在文件 php.ini 中找不到此配置。我应该简单地添加一行 default_encoding = "utf-8"
吗?
我确实有一个 ;default_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
替换它们?
最佳答案
您应该将 default_charset
设置为 UTF-8:
default_charset = "utf-8"
(如果他们要求您更改 default_encoding
,PHP Cookbook 中可能有错字——我从未听说过。)
如果您要输出 UTF-8 编码字符,您还需要确保您的网络服务器设置为输出 UTF-8。在 Apache 中,这可以在 httpd.conf 文件中设置:
AddDefaultCharset UTF-8
至于修改iconv
、exif
、mssql
编码设置,你可能不需要设置这些(你的设置有这些无论如何都被注释掉了),但无论如何最好将它们全部更改为 UTF-8。
关于php - 将 PHP 默认编码设置为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9351694/