charset=x-sjis についてcharset=x-sjis について。HTML&CSS入門の文字コードの指定で、<meta>要素で文字コードを指定すべきと解説しました。
標準規格では、シフトJISコードは charset=shift_jis と書くのですが、古くから charset=x-sjis と言う指定も使われてきました。
ここでは、この指定に関するお話をします。
charset=x-sjis について・目次。x-sjis とは何か。もともと、シフトJISコードに関する正式な表記法が定まっていなかった頃、ネットスケープ社が取敢えず日本語対応するためにネットスケープ 2.0から導入したものが x-sjis と言う表記です。
x-euc-jp もありました。当時のネットスケープのシェアが圧倒的だった事もあって、多くのオーサリングツールなどがこれを採用しました。
その後、公式に shift_jis が定義され、ネットスケープも3.0からこれに対応しております。
しかしながら、現在でも x-sjis を用いた記述が意外に多い事などから、今も殆どのブラウザが並行してサポートしているのが現状です。
x-euc-jp は既に一部のブラウザがサポートをやめているようです。x-sjis ではいけないのか。初めにお断りしておきますが、シフトJISコードの文字コード指定でx-sjisを用いる事は公式には禁止されてはおりません。
実際、RFC2045と呼ばれる公式規格に拠れば、x- で始まるトークンを使う事が許されており、すなわちx-sjisを用いる事は非合法とは言えない事となっております。
しかし、頭に x- が付くものは、インターネットの世界では「独自」「私的」「試験的」「非公式」などと言う意味があります。
つまり、頭に x- が付くものは、策定者側も互換性を一切保証しませんし、他者が勝手に用いて何か起きても責任を負わされる義務はありません。
逆に言えば、誰でも頭に x- を付けさえすれば自由に私的規格を制定する事が出来ると言う事です。
ネットスケープ社は、仮のものとして定めた日本語文字コード名の頭に x- を付けた事で、「うちは取敢えずこうしたけど、勝手に決めたものだから、真似して問題が起きても責任は取れませんよ」と宣言しているとさえ言えるのです。
結局、幾ら公式には許されるとは言え、勝手に作られた私的なものを利用するのは公的に定められたものを用いるよりリスキィと言える訳で、その意味で x-sjis を用いる事は問題があると言えるのです。
x-sjis を何故公式規格にしなかったのか?それでは、頭に x- が付いた私的規格を公式に認めるのはいけない事でしょうか?
頭に x- を付けた非公式なものを強引に公式化すると言う事は、誰でも頭に
と言う決まりを否定する事になります。x- を付けさえすれば自由に私的規格を制定する事が出来る
つまり、私的規格を自由に作れなくなる、もっとはっきり言えば処理の都合でどうしても必要となる私的規格を制定する事が許されなくなってしまうと言う事です。
ms_kanji を提唱しましたが、頭に x- を付けなかった事で、正式な名称として制定したと言う意図が取れます(実際、シフトJISコードを考案したのはマイクロソフトですし)。結局、ms_kanji は shift_jis の別名として正式に認定されました(実際に使っている人は皆無ですが…)。もし、ネットスケープ社が頭に x- の無い sjis をシフトJISコードの表記として公式に提唱していたら、当時の圧倒的なシェアを圧力にして別名として認定させる事が出来たかも知れません。
但し、shift_jis など別の表記が本名とされ、且つそれが望ましいとされた場合、一般人は恐らく望ましいとされた方を使う事になるでしょうから(実際、ms_kanji を提唱したマイクロソフトでさえ本名の shift_jis を使っております)、結局 sjis しか認識出来ない旧式の環境では認識されない事となるのは避けられないでしょう。つまり、意味がなくなってしまう訳です。
ネットスケープ社が頭に x- を付けて非公式なものとしたのは、一介のサードパーティごときが
extended_unix_code_packed_format_for_japanese と言う長ったらしい名前なのですが、別名である euc-jp を望ましい表記としているため、こちらが本名のように扱われております。因みに、ネットスケープ社は日本語EUCの仮称として x-euc-jp を用いましたが、x- を付けていなかったら事実上の正式名となっていた訳です。あくまでも結果論ですが。x-sjis の方が良いのでは?確かにその通りです。
しかしながら、x-sjis でないと認識出来ないブラウザは、既に大昔のものとなっております。
何より、ネットスケープ社自身が、2.xを出した殆ど全ての環境に対して、shift_jis に対応したヴァージョン 3.0以降を用意しており、2.xに固執する必然性がありません。
その頃の他のブラウザは当時のネットスケープの圧倒的なシェアのため、もともと殆ど現れておらず、当然生き残っているものは皆無です。
その数少ない生残りといえるインターネットエクスプローラも、無償配布攻勢とOSのアップグレードに連動したヴァージョンアップで、旧ヴァージョン(3.x以前)はもはや絶滅したも同然です。
結局shift_jis を認識しないブラウザは生き残っていないと判断しても差障りが無いと言い切れます。
x-sjis には対応不要と判断しました。オーサリングツールが勝手に書出すと言うのならともかく、手書きでHTMLを書くのなら最早 shift_jis で問題無いと言う事です。
ですから、わざわざ非公式のものを教える必然性が無いのです。
ただ、人様が作ったウェブ文書のソースを閲覧する際に、こう言う表記もある事は知っていて損は無いでしょうと言う程度のものです。
x-sjis を推奨する者もいましたが、今日ではもはや推奨する意味は全く無いとも言えます。