「?」の文字化け対策

このブログの文字コードを「utf-8」にしたにも関わらず、トップページである種のプラグインを使った表示にすると「?」という文字が「〓」になってしまう件について。
いろいろ悩んだあげく、こちらのプラグインを導入することで無事解決。
Ogawa::MemorandaさんのEncode.pm版lib/MT/I18N.pm
たとえば概要表示などで「文頭から指定した文字数を取り出す」ようなことを実現する場合、substr関数を使うわけだけれど、

日本語版Windows(CP932)で「?」を入力したとき、この文字はFULLWIDTH TILDE(U+FF5E, EFBD9E)として扱われますが、このコードに対応するEUC-JPのコードは存在しません。したがって「?」を含む文字列をJcodeを使ってsubstrしようとすると、EUC-JPに変換した時点「?」がstripされてしまい、substr後の文字列が不正確なものにものになってしまいます。

ということなのだそうだ。
文字列の取り扱いの際、文字コードの変換にJcode.pmではなくてEncode.pmを使うことで文字化けを防ごうというもの。

続きを読む



  •  

    ブログパーツの貼り付け方はこちらへ
  • 月別アーカイブ

  • あいさつ掲示板

  • メタ情報