1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

文字化けはAIに聞けば直してくれる

Posted at

はじめに

日本語などのマルチバイト文字を扱っている時に、たまに出くわすことがある文字化け。大抵の場合はUTF-8の文字列をShift-JISで解釈、ないしその逆だと思います。

これがエラーメッセージやログなどに含まれている場合、元の内容が欲しいので復元したくなります。
よくある復元手段としては、テキストエディタの機能を使って文字コードを変えてみたり、コマンドやツール(iconvとか)を使ったり、というところでしょうか。

ただ、今はもう生成AIに聞けば一発で教えてくれますよという記事です。

早速聞いてみた

用意した文字化けはこちら

逋サ骭イ縺輔l縺ヲ縺�縺ェ縺�繝ヲ繝シ繧カ繝シ縺ァ縺�

聞いた結果がこちら

スクリーンショット 2025-02-24 22.49.19.png

お見事。正解です。

ちなみにこの文字化けは↓のコード(Kotlin)で作っていました。

Kotlin
"登録されていないユーザーです".toByteArray(Charsets.UTF_8).let { String(it, Charset.forName("SJIS")) }
// 逋サ骭イ縺輔l縺ヲ縺�縺ェ縺�繝ヲ繝シ繧カ繝シ縺ァ縺�

元通りに復元できていますね。

おわりに

文字化けの復元って、失われている情報もあるので完全には復元できないこともあります。実際、文字化けを生成したコードをただ逆にしただけでは、キレイな復元は出来ませんでした。

Kotlin
"逋サ骭イ縺輔l縺ヲ縺�縺ェ縺�繝ヲ繝シ繧カ繝シ縺ァ縺�".toByteArray(Charset.forName("SJIS")).let { String(it, Charsets.UTF_8) }
// 登録されて�?な�?ユーザーで�?

恐らくそのあたりも、より精度の高い方法を使っているのか、自然な文章になるように上手いこと補完してくれているのだと思います。
生成AI活用術!と言うにはあまりにも地味な使い方ですが、覚えておくといつか役に立つかもしれません。

1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?