スリ飯屋MaLankaのフリーエンジニアな日々

このブログでは、フリーランス5期目となる自身の実体験から、フリーランスエンジニアになるためのノウハウ、ブログや沖縄移住、スリランカの最新情報について発信します。

【Ruby】"\xE6" from ASCII-8BIT to UTF-8 in /usr/local/bundle/gems/json-2.2.0/lib/json/common.rb:224:in `encode

※記事内に提携先企業のアフィリエイト広告(リンク、バナー等)、Google広告を含む場合があります

【Ruby】"\xE6" from ASCII-8BIT to UTF-8 in /usr/local/bundle/gems/json-2.2.0/lib/json/common.rb:224:in `encode


こんにちは、現役沖縄フリーランスエンジニアのmahです。


このブログでは、

僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、

ノウハウなどを書いていきます。


今回は、


  • 【Ruby】"\xE6" from ASCII-8BIT to UTF-8 in /usr/local/bundle/gems/json-2.2.0/lib/json/common.rb:224:in `encode


についてです。


"\xE6" from ASCII-8BIT to UTF-8 in /usr/local/bundle/gems/json-2.2.0/lib/json/common.rb:224:in `encode



発生した環境は下記。

  • macOS Big Sur 11.3.1

  • ruby 2.6.3

  • rails 5.2.3


開発していると、

突然 "\xE6" from ASCII-8BIT to UTF-8 というエラーが発生しました。

/usr/local/bundle/gems/json-2.2.0/lib/json/common.rb:224:in `encode'\n/usr/local/bundle/gems/json-2.2.0/lib/json/common.rb:224:in `generate'\n/usr/local/bundle/gems/json-2.2.0/lib/json/common.rb:224:in `generate'\n/usr/local/bundle/gems/execjs-2.7.0/lib/execjs/external_runtime.rb:46:in `call'\n/usr/local/bundle/gems/babel-transpiler-0.7.0/lib/babel/transpiler.rb:28:in `transform'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/babel_processor.rb:57:in `block in call'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/cache.rb:92:in `fetch'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/babel_processor.rb:43:in `call'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/babel_processor.rb:16:in `call'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:84:in `call_processor'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:66:in `block in call_processors'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:65:in `reverse_each'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:65:in `call_processors'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:22:in `block in <class:CompositeProcessor>'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:33:in `call'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:84:in `call_processor'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:66:in `block in call_processors'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:65:in `reverse_each'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:65:in `call_processors'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/loader.rb:182:in `load_from_unloaded'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/loader.rb:59:in `block in load'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/loader.rb:335:in `fetch_asset_from_dependency_cache'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/loader.rb:43:in `load'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/cached_environment.rb:44:in `load'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/add_source_map_comment_to_asset_processor.rb:48:in `call'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:84:in `call_processor'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:66:in `block in call_processors'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:65:in `reverse_each'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/processor_utils.rb:65:in `call_processors'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/loader.rb:182:in `load_from_unloaded'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/loader.rb:59:in `block in load'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/loader.rb:335:in `fetch_asset_from_dependency_cache'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/loader.rb:43:in `load'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/cached_environment.rb:44:in `load'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/base.rb:81:in `find_asset'\n/usr/local/bundle/bundler/gems/sprockets-1bcee8ebc034/lib/sprockets/base.rb:119:in `[]'\n/usr/local/bundle/bundler/gems/sprockets-rails-137a3bad5131/lib/sprockets/rails/helper.rb:356:in `find_asset'\n/usr/local/bundle/bundler/gems/sprockets-rails-137a3bad5131/lib/sprockets/rails/helper.rb:348:in `find_debug_asset'\n/usr/local/bundle/bundler/gems/sprockets-rails-137a3bad5131/lib/sprockets/rails/helper.rb:230:in `block in lookup_debug_asset'\n/usr/local/bundle/bundler/gems/sprockets-rails-137a3bad5131/lib/sprockets/rails/helper.rb:243:in `block in resolve_asset'\n/usr/local/bundle/bundler/gems/sprockets-rails-137a3bad5131/lib/sprockets/rails/helper.rb:242:in `each'\
・
・
・


json gemの中でコケています。


対象画面のviewで to_json している変数があったため、

to_jsonする前に force_encoding('UTF-8') するも効果なし。


プロジェクトのチャットに投げてみると、

自分以外は発生していないようでしたが、

「バイナリデータに "\xE6"が混じっていて、それを読み込もうとしている可能性もある」と調べ方を教えていただいたので確認します。

$ grep -obUa "\xE6" -R *
app/assets/images/xyz.jpg:12345:æ
storage/va/ri/variants/jJzamaNCaS6EHJZyK5AYUHw9/1de8d884275d37de15802a4e19585c01308da5b32e88:14412:æ
storage/va/ri/variants/i7wN3Aa2iCWdBtz7XhG333e26421629cad738b6a887209637d2987bd95737cd8a32bd:92064:æ
storage/va/ri/variants/3MPJa8GhNESMpg4YgcJTzX1d/1de8c23dee96c0d736d37de158085c01308da5b32e88:14412:æ
tmp/cache/assets/sprockets/v4.0.0/Fa/fAPVpFajr6PZH74BLHZ2qo1iLJbJogEe1ZVPd0w.cache:255485:æ


5つほどヒット。


tmp/cache/以下にあるものが怪しそうなので削除するも変わらず。

tmp/cache/assets/sprockets/v4.0.0/Fa/fAPVpFajr6PZH74BLHZ2qiLA7o1iLJbJogEe1ZVPd0w.cache:255485:æ


試しに/tmp/cacheディレクトリごと削除すると動きました。


根本的に解決したかは微妙ですがとりあえず...


下記の方法でも解決しそうです。

https://codebeal.com/gem-update-unable-to-convert-xe7-to-utf-8-in-conversion-from-ascii-8bit-to-utf-8-to-us-asciicodebeal.com




最後に


下記の表に、

フリーランスエンジニア向けの人気エージェントをまとめてみました。


エージェント選びで悩んでいる方は是非参考にしてみてくださいね★


エージェント 詳細 最高単価/月 設立
フリエン(furien) 評判をチェック 180万円/月 2011年
ギークスジョブ 評判をチェック 180万円/月 2011年
フォスターフリーランス 評判をチェック 230万円/月 1996年
pe-bank(pebank) 評判をチェック 200万円/月 1989年
Midworks(ミッドワークス) 評判をチェック 200万円/月 2013年
レバテックフリーランス 評判をチェック 140万円/月 2005年