我需要执行接受 ut8 作为输入或生成 ut8 输出的命令行命令和工具。所以我使用 cmd 它可以工作,但是当我使用 exec 从 php 尝试这个时它不起作用。为了简单起见,我尝试了简单的输出重定向。
当我直接在命令提示符下写:
chcp 65001 > nul && echo цчшщюя-öüäß>utf8.txt
uft8.txt 已创建且内容正确。
цчшщюя-öüäß
当我使用 php 中的 exec 函数时:
$cmd = "chcp 65001 > nul && echo цчшщюя-öüäß>utf8.txt";
exec($cmd,$output,$return);
var_dump($cmd,$output,$return);
utf8.txt 中的内容搞砸了:
¥Å¥Î¥^¥%¥Z¥?-ÇôǬÇÏÇY
我正在使用带有(控制台)代码页 850 的 Win7,64 位。
我应该怎么做才能解决这个问题?
附加信息:我正在尝试克服在 Windows 上读取和写入 utf8 文件名的一些问题。PHP 文件函数失败:glob、scandir、file_exists 无法正确处理 utf8 文件名。文件不可见,已跳过,名称已更改...因此我想避免使用 php 文件功能,并且正在寻找一些 php extern 文件处理。