HOME


左側のカテゴリの下にサブカテゴリとして表示されるフリーパーツがありますが、その中のリンクの表現に、例えばスイーツでしたら、m_key_21=%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%84 という表現がありますが、これは何ですか?



これは、URLエンコードというものです。
Google等で検索するとサイトがたくさん出てきます。
例えばココ → http://www.tagindex.com/tool/url.html

ここで、変換したい文字(例えば、スイーツ)を入れて、文字コードとしては"UTF-8"を選択して[エンコード]ボタンを押してください。

すると設定している文字に変換されると思います。

※全角文字や半角カタカナをパラメータ(URLの場合には、?以下に 変数=値 で表現する引数のこと)として指定する場合に必要になります。
※半角の英数字は変換する必要はありません。

これは、全角1文字を(UTF-8の場合ほとんどが)3バイトの16進コードになり、そのコードをさらに文字として表現し%記号をつけたものの羅列にしたものです。

全角の日本語を世界共通のブラウザに伝える為に考え出されたやり方です。


【補足】
*文字とバイトのこと*

1バイトは8ビットのことですね。
例えば、半角の数字"1"は、ビットでは、00110001 という羅列になります。
これを表現するのに、いちいちビット列で表すのは大変なので、これを前半4ビットと後半4ビットに分けて表現します。その際に16進表現を使うのです。

10進数は、1~9までで、次は一つ位が上がって10となります。
16進数は、1~Fまでで、次は一つ位が上がって10となります。

同じ10という表現でも10進では十ですが、16進では十六を表します。

それで4ビットの内容を比較すると、
2進    10進    16進
------------------------------------
0000     0      0
0001     1      1
0010     2      2
0011     3      3
0100     4      4
・・・・・・・・・
1001     9      9
1010     10      A
1011     11      B
1100     12      C
1101     13      D
1110     14      E
1111     15      F

これを8ビットで表現すると
00010000    16      10
00010001    17      11
・・・・・・・・・
11111110    254      FE
11111111    255      FF

となる訳です。
この一番右側の表現を1バイトのコードとして表します。
URLエンコードとして、UTF-8ではほとんどの全角文字が3バイトコードなので、そのコードに16進数と分かるように%を付けて表現しているのです。

それが訳のわからない記号の実態です。つまり、
ス → %E3%82%B9
イ → %E3%82%A4
ー → %E3%83%BC
ツ → %E3%83%84
という変換結果になる訳です。
ちなみに、PC版はUTF-8で表現しておりますが、モバイル版はshift-jisで表現しておりますのでご注意ください。

Copyright © 2010 Ompookan Inc. All rights reserved