将PHP默认编码设置为utf-8?

JDe*_*age 29 php unicode encoding character-encoding

在"PHP Cookbook"中,他们说(p.589)为了正确地将传出数据的char编码设置为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
Run Code Online (Sandbox Code Playgroud)

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

Ben*_*n D 43

你应该设置default_charset为UTF-8:

default_charset = "utf-8"
Run Code Online (Sandbox Code Playgroud)

(如果他们要求你改变,那么PHP Cookbook可能会有拼写错误default_encoding- 我从来没有听说过.)

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

AddDefaultCharset UTF-8
Run Code Online (Sandbox Code Playgroud)

至于修改 iconv,exifmssql编码设置,你可能并不需要这些设置(设置有这些注释无论如何),但它是他们全部更改为UTF-8,无论如何是个好主意.


gio*_*ele 7

修改该行

;default_charset = "iso-8859-1"
Run Code Online (Sandbox Code Playgroud)

阅读

default_charset = "utf-8"
Run Code Online (Sandbox Code Playgroud)

关于其他选项,请勿触摸它们.避免默认设置,始终在您执行的所有操作中明确设置编码

  • 数据库连接,
  • 读写文件,
  • 用iconv转换.

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