INSANEWORKS,LLC
Hostname: ec2-54-204-138-206.compute-1.amazonaws.com
IP Addr: 54.204.138.206
306月/110

Apache: mod_ext_filterで文字コードを置き換える

今時のガラケーは全部Unicodeくらい対応してんだろーなーなんて思ってたのですが、、

全部Shift_JISだそうで

携帯の文字コードと絵文字の基礎知識

なおメールの絵文字に関しては、Apple,Googleでオープンソースプロジェクトemoji4unicodeUnicodeですすめられているらしいです

で、本題

コンテンツをいじる事無くApache単体でShift_JISの文字コードを返すには?

(しかもガラケーのみ)

SetEnvIf User-Agent "DoCoMo"     garakeeeee
SetEnvIf User-Agent "Vodafone"   garakeeeee
SetEnvIf User-Agent "SoftBank"   garakeeeee
SetEnvIf User-Agent "UP.Browser" garakeeeee
SetEnvIf User-Agent "WILLCOM"    garakeeeee
SetEnvIf User-Agent "FOMA"       garakeeeee
SetEnvIf User-Agent "KDDI"       garakeeeee

ExtFilterDefine metareplace mode=output intype=text/html enableenv=garakeeeee \
cmd="/bin/sed s/UTF-8/Shift_JIS/g"

ExtFilterDefine bodyreplace mode=output intype=text/html enableenv=garakeeeee \
cmd="/usr/bin/nkf -s"

<Location />
SetOutputFilter metareplace;bodyreplace
</Location>

とりあえずこれでイケるはず

なお、静的ページの場合は大体これでイケますが、動的なページの場合

Content-Typeヘッダーの書き換えが必要になるかと思われます。

また動的コンテンツの場合不正なマルチバイト文字列を使ったセキュリティホールが生まれる可能性があるので十分注意してください。

Posted by Kota

INSANEWORKSの代表&ネットワーク/サーバーエンジニアをさせて頂いております。 よろしくお願いします。
Tagged as: , Leave a comment
Comments (0) Trackbacks (0)

No comments yet.


コメントを残す

No trackbacks yet.