【ruby】5C問題にぶち当たった時の話

はじめに

これは、ブログで 2014/9/14 頃に投稿し記事なんですが note の方に移動しました。

5C 問題にぶちあたりました

今更ながら 5C 問題にぶち当たりました。
Shift-JIS で、rubyのコードを書いていて、文字列置換で5C問題にぶつかりました。
ruby 側でこんなコードを書いたら

file_path = file_path.gsub( "\\", "/" )

ファイル名に「ソ」を含んでいた際に文字化けしてしまった……

5C 問題とは

調べてみると
https://ja.wikipedia.org/wiki/Shift_JIS#Shift_JIS.E3.81.AB.E3.81.8A.E3.81.91.E3.82.8B.E3.80.8C.E3.82.B7.E3.83.95.E3.83.88.E3.80.8D.E3.81.A8.E3.81.AF%22,%22text%22:%22

2 byte 目に「5C」が入っていると起こる問題だそうで。
お恥ずかしながら知りませんでした(Shift-JIS で コードを書かなければ問題ない)

よく日本語の Print 文を書くので、Shift-JIS で、コードを書いてしまっていたのですが、これからはやめよう。と誓いました。

上で「Shift-JIS で コードを書かなければ問題ない」と書いたのですが、UTF-8 で書きなおしましたが、同じ問題が起こりました。アルェ?🤪

なので、エンコードを 「UTF-8」にして gsub で変換して、その後に 「Shift-JIS」に戻す。という事を行って回避しました。
うーん……謎だ(根本解決になっていない気がしますが)

まぁ、壁にぶち当たれてよかったです。
今回、壁にぶち当たれてなかったら、本質を理解できないままだっただろうから。

「失敗がヒトを成長させる」とはよく言いますが、ほんとそれ。

成功しかした事がない人は、ある意味幸せだと思いますが
失敗だらけのヒトは、それだけ成長できているので
それもそれで幸せな気がします。

おわりに

それでは今回はこのへんで。

もしサポート頂けたら いつか個人開発をする時に使わせて頂きます!