人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Webサイトにアクセスしてきた人が、日本語版OSを使っているかそうでないかを知る方法を教えてください。
相手クライアントは(日本語・非日本語の)Windows上のInternet Explorer(6,7)だけを相手にする方法でかまいません。
perlを用いたCGIで、日本語版OSと非日本語版OSで、閲覧可能なページを切り替えるために使える方法でお願いします。

●質問者: shidho
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CGI Internet Explorer OS Perl webサイト
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● Yota
●20ポイント

HTTPリクエストヘッダの

Accept-Language: ja

Accept-Charset:Shift_JIS,utf-8;q=0.7,*;q=0.7

などを確認すればいいと思います。

(これはわたしのブラウザが出したものですが。)

Perlのことはわかりませんが、「環境変数」に格納されるとか書いてあります。

http://www.rfs.jp/sb/perl/03/03.html

参考

http://www.studyinghttp.net/header#Accept-Language

◎質問者からの返答

Accept-LanguageはOSではなく、ブラウザの設定です。

また、Accept-CharsetはIEでは出ないようですが。

あと、非日本語版Windowsでもそれら値を設定することは可能です。

OSの判別には利用出来ないと思うのですが。


2 ● matsu-boolean
●20ポイント

HTTPヘッダから Accept-Language を取り出せばいいでしょうね。

http://www.studyinghttp.net/header

あたりで調べれば解りやすいかもしれません。

ただし、実際にはコントロールパネルから「地域と言語のオプション」で「英語(米国)」を選択すると、「Accept-Language: en-us」となったりするので判別は完全ではないと思います。

◎質問者からの返答

上記返信にも書きましたが、これはOSを判別する方法ではないですよね?

(おわかりの上で回答されたようだとは思いますが)


3 ● j1960
●20ポイント

無理です。

分かるのはブラウザが日本語対応かどうかだけであって、OSが日本語版かどうかはブラウザはWebサイトに吐きません。

http://www.wotbs.com/~ot-x1/env/env.cgi

◎質問者からの返答

はい。通常の環境変数では無理だと思います。

ただ、どうもflashなどでは日本語版OSと非日本語版OSでは挙動が違うようなので、

なにかそういう細かい挙動の違いはないかと

思って質問した次第です。


4 ● xxxatsxxx
●30ポイント

上記のようにCGI側では不可能だと思われます。。

ActiveX等が使えるのであれば、

GetSystemDefaultLangID()でLANG_JAPANESEが取得できれば日本語版OSということになります。

これは「地域と言語のオプション」でも変わらないはずです。

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja...

あとはビルド番号を見る方法。(バグ利用は外しておきます)。



ちなみに、そんなに古くないヴァージョンのflashでUTF、フォント埋め込み等であれば、挙動の違いは皆無です。

Flash側でSystem.capabilities.languageで取得して、xmlファイルを切り替える程度の配慮で問題ないかと。

◎質問者からの返答

ありがとうございます。

自分で作る分にはいろいろ配慮出来るのですが、

ID for Weblifeをどうしても使いたい、

という話があるもので……。

非対応言語版の簡易ページを別途作って

判別して飛ばすくらいしか思いつかなかったわけです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ