【Laravel】.envで日本語をかけるのか、クォーテーションはいるのか

【Laravel】.envで日本語をかけるのか、クォーテーションはいるのか

LaravelのAPP_NAMEを日本語にしたい状況になり、「そもそも.envで日本語って設定できるんだっけ?」という疑問が湧いたので、試しに検証してみました。

結論として日本語でも大丈夫でした。

試したLaravelのバージョンは8です。

検証

bladeにこんな感じで書いてみて、APP_NAMEが画面に表示されるかテストしました。

APP_NAME:{{ config('app.name', 'Laravel') }}

.envファイルのAPP_NAMEの値を表示し、なければLaravelと表示させるというコードです。

まずは英語

デフォルトではこうなっていたのでまずはこの状態でテストします。

APP_NAME=Laravel
Laravel表示テスト APP_NAME

もちろんエラーはなくLaravelと表示されました。

日本語でテスト

以下のように、漢字含む日本語にしてみました。

APP_NAME=山田太郎のシステム
Laravel表示テスト APP_NAME

正しく表示されていました。日本語でも表示されるみたいです。

ちなみに、シングルクォーテーション・ダブルクォーテーションで囲っても問題なく表示されました。

APP_NAME="山田太郎のシステム"
APP_NAME='山田太郎のシステム'

半角・全角スペースがあるとどうなるか

APP_NAMEに、半角スペースや全角スペースが入っている場合についても検証しました。

半角スペースを入れた場合

APP_NAME=山田太郎 システム

これは、なんと真っ白の画面になりました。半角スペースが挟まるのはNGのようです。

全角スペースを入れた場合

「山田太郎 システム」と全角スペースの場合は、表示されました!半角だとダメなのに、不思議です。

Laravel表示テスト APP_NAME

半角・全角スペースあり+クォーテーションの場合

こんな具合です。

APP_NAME='山田太郎 システム'
APP_NAME="山田太郎 システム"

シングルクォーテーション・ダブルクォーテーションどちらを使っても正しく表示されました。

半角・全角スペースあり+クォーテーションの場合

この方法なら、半角スペースが入っていても大丈夫でした。

.envに日本語をかけるのか まとめ

以上より、Laravelの.envファイルで日本語を設定することはできました。

ただし、半角スペースが間に入っている場合は、シングルクォーテーションまたはダブルクォーテーションで囲う必要があります。なぜか、全角スペースであればクォーテーションで囲まなくても大丈夫でした。

また、Laravelのバージョンや文字コード、サーバーによってはうまくいかないケースがあるのかもしれません。情報を集めています。

日本語のAPP_NAMEをメール送信元の名前にする

ちなみに今回は、Laravelからのメール送信で、メール差出人の名前を同じく.envファイルで以下のように設定していました。

APP_NAME=山田太郎のシステム
(省略)
MAIL_FROM_NAME="${APP_NAME}"

日本語でも正しく差出人名に反映されました。

Mailtrap テスト画面