我正在处理一个大量使用路径名操作的项目。它在Mac OS X上运行良好,但令我惊讶的是,在Windows上无法使用utf-8编码的字符串调用像realpath这样的函数。这是因为Windows上的setlocale不支持utf-8:
http://msdn.microsoft.com/en-us/library/x99tb11d.aspx
http://www.phpwact.org/php/i18n/utf-8
我可以创建包装函数来调用 utf8_encode 和 utf8_decode,但是 PHP 中有很多文件函数,这对我来说是一种负担。
此外,该项目是开源的,因此用户可能会认为在尝试使用我的字符串(全部都是面向 Web 的 utf-8)来读/写文件时出现了错误。
是否有一个库提供主要 php 文件函数的 utf-8 版本?我更喜欢一个自包含的目录而不是扩展,以便我可以将其与我的代码捆绑在一起。
我担心如果找不到这样的库,它可能是使 PHP 对于跨平台开发不适合的致命弱点。我也很好奇其他语言如 Ruby、Python 和 C++ 是否遇到过这个问题,如果他们确实遇到了,那么这可能只是另一个打击 Windows 的原因,我将不得不想出另一种解决方法。
utf8_encode()
也无法解决问题:Windows文件系统不使用ISO-8859-1。 - Álvaro González