5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Rails】carrierwaveの文字化けの対処法

Last updated at Posted at 2018-07-09

carrierwaveの設定を初期設定のままファイル名に日本語が入っているものをアップロードすると、文字化けしますよね。

そんな時は

config/initializers/carrierwave.rb

# 日本語のファイル名が「__」に置き換わるのを防止
CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:]\.\-\+]/

と一番下に追加すればOK!!!
書いたらサーバーの再起動を忘れずに!!!

けれどこれだと、(株)や①などの特殊文字が入っているファイル名が「__」に置き換わってしまいます。

そんな時は

config/initializers/carrierwave.rb

# 日本語のファイル名が「__」に置き換わるのを防止
CarrierWave::SanitizedFile.sanitize_regexp = /[^[:print:]]/

に変えればOK!!!
[:print:]で日本語も特殊文字も文字化けしなくなります!!
なので、[:word:]よりこっちを書いた方がいいかもしれませんね。
もう一度言いますが、書いたらサーバーの再起動を忘れずに!!!

ちなみに、[:word:]や[:print:]はPOSIX文字クラスといいます!

詳細は、このURLに書いてあるので、読んでみてください!!
[https://docs.ruby-lang.org/ja/1.9.3/doc/spec=2fregexp.html]

5
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?