浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【Laravel】Laravelのライブラリでファイルを取り扱うと日本語が消える問題でままある原因

 Laravel は PHP のフレームワークで web サイトの構築でよく使われています。そして web サイトではしばしばファイルを扱います。このファイルを扱う時、ファイル名中の日本語が消えるパターンがままあります。
 これが起きる原因は様々です。PHP の一般的な原因としてはロケールがあります。「php 日本語 ファイル 消える」でググるとよく出てきます。これとは別に Laravel らしいものとしてヘルパの \Str::ascii を使っているライブラリである、というパターンがあります。
ヘルパ 8.x Laravel#Str::ascii()
 この Str::ascii は与えられた文字列を文字コード ascii で表現できる文字列んい変換する機能を持ち、日本語まじりの文字列がこの処理を通ると日本語部分が消えます。これはファイルについての文字コード問題を起こさない方法としてはある種手っ取り早い方法ではあり、しばしばこれを用いたライブラリがあります。
 その様なライブラリを使って問題の事態に陥った場合の対処法は主に 3 つです。一つ目つはそのライブラリを放棄して別のライブラリを探す。二つ目は手書きで日本語対応のファイルについての処理を作る。三つめはライブラリをフォークして日本語対応にする。いずれにせよ、そのライブラリをそのまま使うことは難しいです。これは Str::ascii を使っている場合、特別に日本語に対応しているということがほとんどなく(少なくとも自分が見た中ではなし)、どのみち日本語対応用の処理を作る必要があるからです。

  • この記事いいね! (1)