Xoops Cube Project
XOOPS Cube Project Site
検索
Advanced Search
Powered by Google


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

Jun 20, 2004(Sun)

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

Filed under: - のぶのぶ @ 12:26:14 pm

日本語の文字コードの関係でトラックバックの文字化けってのがいろいろな
ブログツールの開発者を悩ましているが、試行錯誤の結果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パラメータによる変換をするかを判定する事とした。


Comments

RSS feed for comments on this post.

  1. 日記更新
    きこえる

    Comment by のぶのぶ — Jul 25, 2004(Sun) @ 10:39:07 am

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

    Trackback by M's_Bar — Jun 14, 2005(Tue) @ 10:16:20 pm

Leave a Comment

Sorry, the comment form is closed at this time.

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

カレンダー
June 2004
S M T W T F S
« May   Jul »
 12345
6789101112
13141516171819
20212223242526
27282930  
投稿者別一覧
アーカイブ(月別)
カテゴリ一覧
ブログ内検索