すると、日本語の大半が変な文字列に変わってしまいました😥。 へ… 変な文字列じゃないし!エスケープシーケンスに変換しただけだから! これは、Haskell標準におけるshow関数の残念な仕様です。 show関数に文字列を渡すと、ダブルクォートで囲った上で、ASCII範囲外の文字列や、ASCIIの非表示文字などをエスケープシーケンスに変換して返します。 これは、show関数をデバッグで使用した際、指定した文字列にどんな文字が含まれているか、簡単にわかるようにするための仕様です。 文字の文字コードを表示すれば、NULL文字や制御文字、ゼロ幅文字、特殊なスペースなど、視認しにくいおかしな文字が含まれていても、一目でわかるのです。 しかしこれは日本語話者である我々にとって、少なくとも日本語の文字に関しては「余計なお世話」です。 NULL文字やASCIIの制御文字といった本来画面に表示することがな