我正在设置一个新服务器,并希望在我的Web应用程序中完全支持UTF-8.我过去曾在现有的服务器上尝试过此操作,但最终似乎不得不回归ISO-8859-1.
我在哪里需要设置编码/字符集?我知道我需要配置Apache,MySQL和PHP来执行此操作 - 是否有一些我可以遵循的标准清单,或者可能是在出现不匹配的地方进行故障排除?
这适用于运行MySQL 5,PHP,5和Apache 2的新Linux服务器.
如果$filename包含变音符号(ä,ö,ü)file_get_contents($filename)在我的Windows操作系统上不起作用.通过反复试验,我发现我需要做file_get_contents(utf8_decode($filename))才能让它发挥作用.
但是,当我把这个推送到我的服务器(猜它是某种Linux)它再次返回错误,所以我删除了utf8_decode它,突然它完美地工作.
作为一种解决方法(所以每次我对代码进行更改时都不需要手动更改这段代码)我已经尝试过了
(mb_detect_encoding($filename, 'UTF-8', true)) ? utf8_decode$filename) : $filename;
Run Code Online (Sandbox Code Playgroud)
因为这已经解决了同样的问题,反之亦然(有相同的问题utf8_encode),但$filename结果是在每个(服务器)环境中都是UTF8编码,所以这不起作用,因为它总是如此.
任何想法如何使这两个系统都能工作?(请不要"只是迁移到Linux进行PHP开发" - 我有Linux,但ATM我出于多种原因使用Windows)
编辑:问题也出现,fopen并且接受的解决方案也可以.