User:
Pass:
Keep:   
Xoops Cube Project
XOOPS Cube Project Site
Powered by Google


Powered by XOOPS Cube Legacy 2.1.8
PukiWikiMod 1.5.1
WordPress Module 0.6.0 Alpha

2004年6月20日(日)

トラックバックの文字化け対策

カテゴリー: - のぶのぶ @ 12時26分14秒

日本語の文字コードの関係でトラックバックの文字化けってのがいろいろな
ブログツールの開発者を悩ましているが、試行錯誤の結果WordPressでは、
以下のような対策を考えた。

トラックバック送信時
1.charsetパラメータの付加
 日本語圏では、charsetをトラックバックPOSTのパラメータに付加する事が
 デファクトとなっているようなので、送信する文字コードを指定する。
2.UTF-8での送信オプションの追加
 exciteのブログなどではUTF-8以外の文字コードによるトラックバックを
 受け付けてくれないので、送信時にUTF-8によるトラックバックを可能にする
 オプションを追加
3.Bookmarkletによる投稿時の、ターゲットの文字コード自動判定
 Bookmarkletによる投稿時には、一度トラックバックURLの自動取得を目的として
 ターゲットのページを読み込むようにしているので、この際に文字コードを
 判定して、その文字コードによってトラックバックを送信する。

トラックバック受信時
基本的には以下の2つの方法で受信したトラックバックの文字コードを判定する。
1.charsetパラメータによる文字コード判定
2.mb_detect_encoding関数による文字コード判定
但し、PHPではphp.iniや.htaccess等によりmbstringの設定の違いによって、
charsetパラメータを信用する事がかえって文字化けの原因となる事が
わかってきた。
というのは、設定によってはPHPの方で自動的にPOSTされた文字列の文字コードを
判定して、事前に文字コード変換されてしまうので、これにcharsetパラメータを
参照して文字コード変換すると2重に変換する事になって文字化けが発生してしまう。
特にphp.iniにて、

mbstring.http_input = auto
mbstring.encodi​ng_translation = On

等となっている場合には、この状況となる。
よって、受信時に既に変換済みかどうかを判定する必要が出てくる。
mb_http_input("P")という関数呼び出しによって、POST文字列をどういうcharsetとして
判断して変換したかという事が拾えるので、これらとphp.iniの設定内容を元に、
自動変換するかcharsetパラメータによる変換をするかを判定する事とした。


コメント

このコメントのRSS

  1. 日記更新
    きこえる

    Comment by のぶのぶ — 2004年7月25日(日) @ 10時39分07秒

  2. テスト
    http://www.kowa​.org/modules/wo​rdpress/archive​s/2004/06/20/22​4/
    テストです。

    Trackback by M's_Bar — 2005年6月14日(火) @ 22時16分20秒

  3. この文字化け対策はありがたいです。

    Comment by 人材派遣労働者 — 2008年2月17日(日) @ 15時24分55秒

  4. htaccessで設定できることを初めて知りました。

    Comment by 会社設立したばかり — 2008年6月18日(水) @ 10時07分40秒

  5. サイトで文字化けしていたので大変助かりました。

    Comment by 賃貸の大阪home — 2010年12月22日(水) @ 22時49分50秒

コメントの投稿

ごめんなさい、現在コメントを付けることは出来ません

37 queries. 0.023 sec. - Mem:4114bytes
Powered by WordPress Module based on WordPress ME & WordPress

カレンダー
2004年 6月
« 5月   7月 »
 12345
6789101112
13141516171819
20212223242526
27282930  
投稿者別一覧
アーカイブ(月別)
カテゴリ一覧
ブログ内検索