チョコミントアイス

あるWebシステムで、エラーログに「Malformed UTF-8 character」が大量に出力されています。

意味はわかるのですが、どんな文字列がエラーになっているか分からないので、デバッグできず困っています。

# 全てのアクセスで必ず通るロジックなので、入力文字列を無条件にダンプするわけにも行きません。

もし、「Malformed UTF-8 character」になる見込みの文字列だけダンプするなど、効率的なデバッグ手段があれば、教えていただけますでしょうか。

よろしくお願いいたします。

A 回答 (1件)

Malformed UTF-8 character というメッセージは、いわゆる「フラグ付き内部文字列 (UTF-8)」への変換が適切に行われていないことを示しています。

元の文字列の文字コードの指定誤りが、主な原因となります。メッセージの末尾には「ファイル名と行番号」が示されているはずですので、それを手がかりに調べていけばよいと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

エラーの意味は既に理解していて、ログに出力されていたファイル行を確認したものの、
ブラウザに返すほとんど全てのアウトプット文字列が通るロジックだったため(1回の
画面要求で数千回通る箇所)デバッグできずに困っていました。

結局、たまたま別件でデータベース内のあるテーブルのデータをチェックしていた時に、
ユーザによって登録されたデータの一部(ほんの数件)が文字化けしていることを発見し、
そのレコードを削除したところエラーは出なくなりました。

お礼日時:2013/05/12 00:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報