1. 無料アクセス解析

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ユーザータグと文字化け 

ユーザータグを付すと本文が文字化けしてしまう、という現象があります。

ユーザーフォーラムにもざっとこれだけの報告がありました。

今までさほどユーザータグをつかっていなかったので、気に留まっていなかったのですが、「ある条件の文字をつかうと文字化けが起きる」という現象があり、文字コードの関係だという説明がついていました。

上記のトピックから書き出した文字化けする文字列です。ためしにこの記事でそれぞれ設定すると以下のように文字化けしました。

ァ・(A5A1・A1A5)
ァ・
魁!(B3A1・A1A9)
魁!
海(B3A4)
海
犬(B8A4)
犬
気(B5A3)
気
幸福(B9AC・CAA0)
文字化けなし、おそらく「福」の後ろの文字との組み合わせで化けると思われる
ァー(A5A1・A1BC)
ァー

「ァ・」(A5A1・A1A5)を例にとってみます。文字化けした文章「ユーザータグを付すと本文が文字化けしてしまう、という現象があります。」の文字コードは以下の通り。

「A5E5 A1BC A5B5 A1BC A5BF A5B0 A4F02 C9D5 A4B9 A4C8 CBDC CAB8 A4AC CAB8 BBFA B2BD A4B1 A4B7 A4C6 A4B7 A4DE A4A6 A1A2 A4C8 A4A4 A4A6 B8BD BEDD A4AC A4A2 A4EB A4DE A4BA A1A3」

あれれ?「ザ」の中に「ァ・」組み合わせと同じコードが潜んでいるかと思ったのですがそうでもないみたい。でも、どこかで何か勘違いをしている、というのは何となく分かりますね。

これにはひょっとしてエスケープが有効ではないかと思いつき、それぞれのタグを「数値文字参照」してみました。以下は元々のユーザータグと、数値文字参照したタグです。

今、この記事にはエスケープしてユーザータグを設定しています。本文の文字列もエスケープしたものです。文字化けは回避されました。が、新たな問題がいくつか出てきました。

  • 過去記事の編集時には元の文字列になってしまう(再設定が必要)。
  • プラグインのタグリストには、数値文字参照したままの文字列が表示されてしまう。
    エスケープした文字列がそのままリストに……
    参照⇒サイドバーのタグリスト。これでは何だか分かりませんね。しかも、当然のことながらリンクが無効です(意味ない~!)。
  • タグページにも記載されない。参照⇒例タグ:魁!男塾とは

手間をかけてもここが限界。これでは使い物にならないので、是非システムのほうで対応していただきたいと思います。

お役立ちサイト

@Nelii:数値文字参照変換スクリプト

新管理画面でなされたユーザータグ関連の改善

  • ユーザータグ編集ページの設置(編集、削除が可能に)
  • ユーザータグごとのRSS配信
  • title属性やalt属性に含まれる、ユーザータグと同じ文字列のリンク置換を廃止

懺悔。この記事作成のために、訳の分からない文字列のタグページをたくさん作成してしまいました。ごめんなさい。

スポンサーサイト

コメント

no_title

文字化けの件対応致しました。
この変更によって、現行ですとユーザタグを全角・半角スペースで区切って入力して頂いていますが、今後は半角スペースのみ区切り文字として有効になります。
#JavaScriptで全角⇒半角の自動変換ができないか模索中です

早速の対応、ありがとうございます。

http://sweetspots.blog1.fc2.com/blog-entry-160.html
リンク置換がオフの場合は、問題なく表示できましたが、オンにした場合、文字化けが起こりました。
そのままにしてありますので、どうぞご検証、修正をお願いいたします。

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://sweetspots.blog1.fc2.com/tb.php/158-4fd5a668

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。