Windows環境でPHPのsetlocale関数を使用する際の注意
Windows環境でPHPのsetlocale関数を使用する際には、指定する引数の記法に注意する必要がある。
以下のような記法では認識されない場合がある。
setlocale(LC_ALL, "ja_JP.UTF-8");
以下のような記法では正しく認識される。
setlocale(LC_ALL, ".UTF8");
または
setlocale(LC_ALL, ".UTF-8");
正しく認識されなかった場合、setlocale関数はfalseを返すため、これを使用して判定もできる。
if (!setlocale(LC_ALL, "ja_JP.UTF-8")) {
error_log("Locale not found");
exit(1);
}
参考1(https://hacka.work/blog/win-php-utf8/)
参考2(https://www.softel.co.jp/blogs/tech/archives/2331)
参考3(https://hnw.hatenablog.com/entry/20120501)
関係あるかも(https://so-zou.jp/software/tech/windows-app/win32/internationalization/)