■スポンサーサイト

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

■Shift-JISでのGETの処理

に大いにつまづく。

日本語を混ぜたURL(単にサーバー上にアップする
フォルダやファイル名を日本語にしただけ)
にPCからアクセスすると普通に表示されるのだが
携帯からだと「ページが見つかりません。」とエラーになってしまう。

ログを見ると、PCからのGETされているファイル名(これはテストです.html)が

%E3%81%93%E3%82%8C%E3%81%AF%E3%83%86%E3%82%B9%E3%83%88%E3%81%A7%E3%81%99.html

となっているのに対して、携帯からのものは

%82%B1%82%EA%82%CD%83%65%83%58%83%67%82%C5%82%B7.html

となっていることに気づく。

ULRデコーダーを使って会席してみると、
PCからのものはUTF-8、
携帯からのものはShift-JISとなっていることがわかる。

そこでブラウザの文字コードについて調べてみると、
現在ほとんどのPCブラウザは、
URLをUTF-8で処理するのに対し、
携帯ブラウザはまだShift-JISが多いとのこと。
(ってこんなことは技術やってる人には常識?
文字コード全然わからん(泣))

さて、ここで本題のじゃあどうやったら携帯からのアクセスを
正常に表示させることができるか、というところ。

携帯からのGETを受ける前に文字コードを
SJISからUTFに変換して返すときにまたSJISに変えて・・・
なんてことを考える(できるかどうか知らんが)。

もっと簡単にできないのかと思い、根本的な問題を考えてみる。
Windows上でファイル名を作成したということは、ファイル名は
もちろんSJISでエンコードされているわけだから、そのまま
エンコードを変えずにファイルをアップしたらいいんじゃない?
と考える。

そこでFTPをテキストではなくバイナリで実行。

成功。

これで携帯からのアクセスでもOKとなった。
でも相変わらずPCからのアクセスもちゃんと表示されるのはなぜ?


※サーバー環境はLinux、OSの言語はLANG=en_US.UTF-8。
環境によっては上記方法でうまくいかない場合もあり。

追記:
OSの言語設定を日本語にしたらいいだけかも。

スポンサーサイト

■コメント

■コメントの投稿

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

 

プロフィール

systemadmin

Author:systemadmin
files2cloud.com

最近のコメント

ブロとも申請フォーム

ブログ内検索

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