アフィリエイトのWEB技術>ホームページの文字コード
ホームページの文字コード
文字コードの違い
WEB技術を学ぶ上で必要なことに、文字コードがあります。一見同じように日本語が表示されているホームページであっても、実は異なった文字コードが使われている場合があります。ブラウザーで表示させるだけでは文字コードはわかりません。
例えばYAHOO(http://www.yahoo.co.jp/)の場合、文字コードはeuc-jpです。日本語の多くのホームページの文字コードはshift-jis、euc-jp、utf-8のいずれかになっています。他の言語のホームページの場合にはこれ以外の文字コードが使われています。
文字コードはページのコードを表示させ、始めのほうに書いてある以下のような記述で知ることができます。ちなみにページのコードを表示させるのはIEの場合、ページ上で右クリックして「ソースの表示」を選択します。

<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
下線を引いた部分がそのページの文字コードを表しています。
では試しにYAHOO(http://www.yahoo.co.jp/)を表示しておいて、右クリック、今度は「エンコード」を選び、「日本語(シフトJIS)」を選択してみてください。文字化けするはずです。
文字コードとは
コンピュータやインターネットの世界では、文字は実際には数値で表現されています。数値をブラウザーやワープロなどのプログラムが解釈して文字として表示する仕組みです。どのような文字にどのような数値をあてるかを決めているルールが文字コードです。このルールには複数あって同じ「あ」という文字を表現するのであっても、どのような数字を使うのかが異なるわけです。
自分でホームページビルダーなどを使って静的なページを作るだけならば、さほど文字コードは意識する必要がなく、多分初期設定になっているshift-jisを変更せずにそのままにしておけば大丈夫です。
ところが、プログラムを組む場合には文字コードを意識しなくてはいけません。
ショップから商品データが提供されていて、そのデータを使ってブログの中に商品リンクを表示するプログラムを作るとしましょう。非常にありがちな組み合わせですが、提供される商品データがshift-jisで、ブログで使われているコードがeuc-jpである場合、データをshift-jisからeuc-jpに変換しなくては文字化けを起こしてしまいます。
アフィリエイト・サービス・プロバイダー大手のリンクシェアが提供するマーチャンダイザーでは、ダウンロードできる商品情報ファイルのほとんどは、UTF-8 になっています。これを普通のホームページで使用するためには、shift-jis に変換しなくてはなりません。
ですからデータに使われている文字コードとプログラムで使われている文字コードが異なる場合には、プログラムで文字コードを変換する必要があるのです。ですからアフィリエイトのWEB技術を考える上では、文字コードの問題は避けて通ることができません。
サーバーの内部コード
今まで書いたのは、ホームページに表示する文字コード、あるいはphpなどのファイルで用いるコード、そしてデータのやり取りに使用する文字コードです。
これ以外にも意識しないと存在がわかりませんが、サーバーが内部的に使用している文字コードがあります。これはレンタルサーバー会社の方で設定がされていますが、普段は意識することはありません。ホームページの文字化けなど異常が出なければ気にしなくて良い、ということです。
しかし、稀に文字データのやり取りに影響を与えたり、あるいはブラウザーでの表示に影響を及ぼしたりすることもあります。ホームページの文字コードと、サーバーがブラウザーに知らせる文字コードが異なっている場合などに影響が出ると思われます。
私は海外のレンタルサーバーを使っていて、日本語の表示ができなくなったことがありました。これはサーバー全体の文字コード・言語の設定が英語を前提としたものに固定されていたためと考えられます。サーバー会社に連絡して解決しました。
サーバーの内部コードは、.htaccess ファイルを設定することで変更できる場合もありますが、サーバーによっては禁じられている場合も考えられます。