fw3 / streams

Flywheel3 stream library
MIT License
22 stars 3 forks source link

macOS Ventura環境でデフォルトロカールja_JP.utf8が存在しないため失敗する #32

Closed 39ff closed 1 year ago

39ff commented 1 year ago
<?php
require './vendor/autoload.php';

use fw3\streams\filters\ConvertEncodingFilter;

ConvertEncodingFilter::startChangeLocale();
PHP Fatal error:  Uncaught Exception: システムで使用できないロカールを指定されました。locale:ja_JP.utf8 in /Users/amnesia/workspace/PhpstormProjects/fw3-streams-tests-run/src/filters/ConvertEncodingFilter.php:299
Stack trace:
#0 /Users/amnesia/workspace/PhpstormProjects/fw3-streams-tests-run/test.php(10): fw3\streams\filters\ConvertEncodingFilter::startChangeLocale()
#1 {main}
  thrown in /Users/amnesia/workspace/PhpstormProjects/fw3-streams-tests-run/src/filters/ConvertEncodingFilter.php on line 299

https://github.com/fw3/streams/blob/master/src/filters/ConvertEncodingFilter.php#L41

% php -v
PHP 8.1.11 (cli) (built: Dec 27 2022 22:08:48) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.11, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.11, Copyright (c), by Zend Technologies
    with Xdebug v3.1.5, Copyright (c) 2002-2022, by Derick Rethans
% locale -a | grep "ja"
ja_JP.SJIS
ja_JP
ja_JP.UTF-8
ja_JP.eucJP

次の通りロカールを指定すると動作します。

<?php
require './vendor/autoload.php';

use fw3\streams\filters\ConvertEncodingFilter;

ConvertEncodingFilter::startChangeLocale('ja_JP.UTF-8');
% sw_vers
ProductName:        macOS
ProductVersion:     13.3.1
ProductVersionExtra:    (a)
BuildVersion:       22E772610a

また、テスト実行しましたが 下記のGitHub Actionsと同様のエラーが出ており、うまくいかないようでした。 https://github.com/koulab/fw3-streams-tests/actions/runs/4987663837/jobs/8929634249

wakabadou commented 1 year ago

@39ff ご報告ありがとうございます。 mac OS環境が手元に無いので大変助かりました。

OS固有のロカール指定文字列の問題のようなので対応しますね。

wakabadou commented 1 year ago

@39ff 先ほど対策版をリリースしました。 よろしければご確認ください。

39ff commented 1 year ago

正常に動作いたしました。 ご対応いただき、ありがとうございました。

wakabadou commented 1 year ago

ご確認ありがとうございました。クローズします。