PHP 库在 Windows 上提供 UTF-8 文件功能


php library providing utf-8 file functions on windows?

我正在做一个做大量路径名操作的项目。 它在Mac OS X上运行良好,但令我惊讶的是,没有办法在Windows上使用utf-8编码字符串调用像realpath这样的函数。 这是因为 Windows 上的 setlocale 不支持 utf-8:

PHP:Windows 7 中的设置区域设置

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的又一次打击,我将不得不找出另一种解决方法。

Windows setlocale() 函数(不是 php,而是实际的库函数)不支持多字节编码。所以你是对的,在Windows上设置utf-8语言环境是不可能的。

但是,您不需要定义新函数。编写流包装器。流包装器可由大多数与文件相关的函数使用,甚至是内部函数,例如在 XSLT 模板中加载文档。