ut8 を入力として受け入れるか、ut8 出力を生成するコマンド ライン コマンドとツールを実行する必要があります。だから私はcmdを使用して動作しますが、phpからexecでこれを試しても動作しません。簡単にするために、簡単な出力リダイレクトを試しました。
コマンドプロンプトで直接書くと:
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,64bit を使用しています。
それを修正するにはどうすればよいですか?
追加情報: Windows での utf8 ファイル名の読み取りと書き込みに関するいくつかの問題を克服しようとしています。PHP ファイル関数が失敗します: glob、scandir、file_exists は utf8 ファイル名を正しく処理できません。ファイルが見えない、スキップされた、名前が変更された... したがって、php ファイル関数を避けたいので、いくつかの php extern ファイル処理を探しています。