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

标签 php unicode encoding character-encoding

在“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_encodingPHP Cookbook 中可能有错字——我从未听说过。)

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

AddDefaultCharset UTF-8

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

关于php - 将 PHP 默认编码设置为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9351694/

相关文章:

php - 这个 php/regex 查询有什么问题?

java - 插入时oracle + java编码问题

node.js - Nodejs - 使用 Dropbox Core API 下载 PDF 并保存到磁盘

python - String.encode 和 codecs.encode 之间有区别吗?

php - 防止 mPDF 中的正文重叠页脚

php - 如何使用 Redis 在 NodeJs 和 PHP 之间共享 session ?

php - PHP 中的表单未在 <li> 下发布值

c++ - 使用 ATL 将 LPTSTR 转换为 LPWSTR

html - 在 HTML 中使用 Unicode 文字安全吗?

python-3.x - 在Python 3中如何将unicode代码点打印为u'\U...'