Help:Special characters/ja

From Meta, a Wikimedia project coordination wiki
MediaWiki ハンドブック: 目次読者編集者中間管理者システム管理者 +/-

MediaWiki 1.5から、全プロジェクトで UnicodeUTF-8 文字エンコーディングが使われるようになりました。

Unicode と ISO 8859-1[edit]

ウィキメディアプロジェクトが使用するMediaWiki が1.5にバージョンアップした2005年6月末まで、英語、オランダ語、デンマーク語、スウェーデン語のウィキペディアでは windows-1252 を使っていました(プロジェクト側では ISO-8859-1 と記述していましたが、実際にはブラウザはこの2つのコードを同義として扱い、またメディアウィキソフトも windows-1252 にしかない文字コードの使用を制限していませんでした)。これらのプロジェクトのデータベースに残っているアップデート以前のウィキテキストは現在も windows-1252 で保存されており、ロードの際に変換されています(一部では履歴保存方法の変更に伴い、漸次保存データ自体が変換されています)。アップデート以降の編集は、 UTF-8 でデータベースに保存されることになります。ロード時のコード変換は利用者には不可視です。また、現在ウィキメディアプロジェクトでは データベースダンプではなく xml ダンプを使用しているので、ウィキメディアのデータを再利用する人にも不可視です。

ユニコード(UTF-8)
  • 文字ごとにバイト数が異なる。
  • CJK文字を含む特殊文字をほかの文字と同様に扱える。生成されるウェブページだけでなく、編集ボックス中でもその文字が表示され、また多言語混在表示も可能。貼り付けても編集ボックスで自動的に変換されることはありません。
ISO 8859-1
  • 1文字あたり1バイト
  • 限られた文字セットの中に含まれない特殊文字は、多言語コードとして提供される。同じコードに複数の表現形があるのが普通。たとえば € には「文字実体参照」の € と「数値文字参照」の € 、さらに「16進法参照」の € があります。編集ボックスには入力されたコードが示され、生成されるウェブページにはその参照結果が表示されます。基本の文字セットに含まれない文字は、編集ボックスにコピーされると最初はその文字として表示されていますが、プレビューか保存時に数値参照値に 自動変換されます。
  • éのような頻繁に使われる特殊文字は基本の文字セットに含まれているので、 é などのコードは、使用可能ではありますが、必要ありません。

なお、データベースのエンコーディングが ISO 8859-1を使用していても、 Special:Export を用いてデータ書き出しをすると、 UTF-8 が用いられることに注意してください。これは英語版ウィキペディアでは MediaWiki 1.4の時点からそうでした。

プロジェクトでどのような文字コードが使用されているかを確認するには、ブラウザの「ソースを表示」機能を使用し、次のような文字列を捜してください。

<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />


<meta http-equiv="Content-type" content="text/html; charset=utf-8" />


編集[edit]

標準ASCIIに含まれない多くの文字は便利であり、プロジェクトによっては必須です。ここではどのような文字が使え、どのようにそれらを使うかについて述べています。非ASCII文字をウィキテキストに入力するためには4つの方法があります。

  • 編集ボックスの下にリストされている特別文字へのリンクを使う。Internet Explorerでは一部の文字が表示されないことに注意してください。

    使用しているフォントによっては、このボックス内の文字は全部表示されますが(例えばArial)、ページごとにフォントを切り替えるのは不便です。このような時には CharInsert 機能拡張をインストールしてください。
  • キーボードから直接入力する、または文字マップ系のアプリケーションからコピーアンドペーストする、またはOSやテキスト編集ソフトが提供する入力機能を使用する。ISO-8859-1 を使用しているウィキでは、ブラウザによってはウィキの文字セット外の文字が数値参照に自動変換されます。
  • HTMLの文字実体参照を使用する。例えば &agrave;など。この方式は、そのサーバでどのような特殊文字セットを使用できるかはっきりしないとき、また一部のブラウザできちんと表示されない時にも安全な方法です。ただし、検索に支障をきたすことがあります。
  • HTMLの数値文字参照をしようする。例えば &#161;。残念ながら、一部の古いブラウザでは、これらのコードを正しく変換できません。しかし、例えば トルコ文字のような、文字実体参照が存在しないUnicode文字を入力する唯一の方法です。128 から 159 のレンジは ISO-8859-1 でもUnicodeでも、HTMLでは使用が不正とされる制御記号への参照なので、 &#131; のようなこの範囲の文字の参照は不正で、表示結果が保証されません(多くのサイトで使われてはいますが)。ほぼすべてのブラウザで ISO-8859-1 は Windows-1252として認識され、このレンジに指定されている印刷可能な文字を参照するため、英語版の記事名にも多用されていましたが、このことがインターウィキリンクを作る時に大きな混乱の原因となった経緯があります。

一般的に言って、スペイン語、フランス語、ドイツ語のような西ヨーロッパ言語ではほとんど問題はありません。その他の言語については、Help:Turkish charactersHelp:Romanian charactersが用意されています。

検索のためには、最初の方法を使って特別文字を記述するのが最良です。2番目の方法を使用すると、これは修正されるべきバグですが、例えばOdiliënbergという単語は、検索ではOdili、emul、nbergと別々に認識されてしまいます。

エスペラント[edit]

編集ボックス中データベース中と出力
SS
SxŜ
SxxSx
SxxxŜx
SxxxxSxx
SxxxxxŜxx

エスペラント語プロジェクトのMediawikiの構成は、表示と記憶にUTF-8を使います。しかしながら、編集するときには、テキストは標準キーボードを使って編集しやすいように設計された形に変換されます。

これが適用される文字はĈ, Ĝ, Ĥ, Ĵ, Ŝ, Ŭ, ĉ, ĝ, ĥ, ĵ, ŝ, ŭです。これらの文字を直接入力できる環境であれば、それでかまいません。しかし、ページを再度編集する時にはそれらがSxとしてエンコードされているのを目にするでしょう。この形は、"x-sistemo" または "x-kodo" を参照します。したがって、これらのアクセントが付きうる文字(C, G, H, J, S, U, c, g, h, j, s, u)のあとにxが続く時には、xを実際の表示よりも1回多く入力しなければなりません。

たとえば、en:Luxury carへの言語間リンク[[en:Luxury car]]は、eo:上では編集ボックスに[[en:Luxxury car]]と入力しなければなりません。この設定のために、interwiki更新ボットが問題を引き起こすことがあります。

ブラウザの問題[edit]

一部のブラウザでは編集ボックスのテキストがおかしくなることが知られています。もっともよくあるのは、プラットフォーム固有のエンコーディングに変換してしまうことです(WindowsNT系列では内部的にUTF-16を使っているので、WindowsのANSIコードページ中でAPIの完全に重複したセットを持っており、古いアプリケーションの多くがこれを使用しているため、よく起きます)。次によくあるのは、利用者が入力補助パレットを使用して入力したものが変換されてしまうことです。編集時に使用されているエンコーディング中に存在しない文字はすべて、エンコーディング中にある文字に変えられてしまうことがあります(だいたいの場合は?に化けますが、別のテキストを生成してしまう事例も報告されています)。

Mac版IE[edit]

このブラウザはわりと一般的に使われていますが、テキストをmac-romanに変換するので、ほとんどのUnicode文字が誤変換されます(?に置き換わる場合が多い)。ISO-8859-1も誤変換されますが、mac-romanは正しくのこります(¤ ¦ ¹ ² ³ ¼ ½ ¾ Ð × Ý Þ ð ý þ とソフトハハイフン)。したがって、Unicodeを使用しているプロジェクトだけの問題にとどまりません(Unicodeを使用しているプロジェクトの方がテキスト全体とインターウィキリンクがおかしくなるので、被害は大きいですが)。

Netscape 4.x[edit]

Mac版IEと同種の問題がありますが、誤変換先の文字セットはmac-romanとは限りません。

コンソールブラウザ[edit]

Lynx、Links(テキストモード)とW3Mは、編集の際にテキストをコンソール文字セットに変換(LynxとLinksは変換エンジンを使用)し、保存時に再変換します。コンソールの文字セットがUTF-8に設定されていれば、Unicodeを使用しても問題ありませんが、他のコードに設定されていると問題が起きます。LynxとLinksでは、ログイン画面に編集ボックスをもう一つ追加することで検出できますが、W3Mでは実際にテキストを入力するまで変換が起きないのでこの方法は使えません。

回避方法[edit]

In database and edit
box for normal browsers
In editbox for
trouble browsers
œ&#x153;
&#x153;&#x0153;
&#x0153;&#x00153;

英語版ウィキペディアがUTF-8に切り替え、インターウィキ用のボットがインターウィキリンク中の実体参照をUnicode文字に置換し始めた時に、Unicode文字を破壊する編集があまりに相次ぎ、無視できないほどになりました。そのために、問題を起こすブラウザでも安全に編集できるような回避方法が開発されました。


$wgBrowserBlackList(ユーザ・エージェント・ストリングに対応する regexps のリスト)に書かれているブラウザは、編集時に特別のテキストが準備されます。ページ内にある16進法参照のHTML文字参照には、冒頭に0が追加され、ウィキテキスト内に保存される非ASCII文字は追加の0無しの16進法文字参照で表現されます。

現在のところ、初期設定ではMac版IEとLinux版Netscape 4.xのみがブラックリストに載っていますが、ほとんどの問題はこれで解決したようです。問題があれば将来的にリストを拡張することが望ましいですが、それにはcvsへのアクセス権がある人に依頼しなければなりません。

閲覧[edit]

最近のブラウザのほとんどは何らかのレベルでUnicodeに対応していますが、対応の程度はブラウザによります。もっともよく遭遇する問題は、Internet Explorer が表示したい文字を表示できるフォントを捜さずに、レジストリにあるあらかじめ構成されたフォントリンクに依存してしまうというものです。このため、Internet Explorerのためには、しばしば使用フォントを強制するよう設定してあげる必要があります。英語版ウィキペディアでは、これを補助するテンプレートのセットがあります。例えば、一般的なUnicodeテキストのためには{{unicode}}、ポリトニック・ギリシア語のためには{{polytonic}}、国際音声記号のためには{{IPA}}があります。Windows Glyph List 4に含まれる文字は、こういった特別な処置なしでも問題なく表示されるはずです。

なお、<font face="Arial Unicode MS">...</font> といった指定も有効ですが、そのフォントをインストールしている場合にしか意味を成しません。

特別文字の表示[edit]

ウェブページ上でUnicodeや特別文字を表示するためには、まず、必要なユニコードフォントがコンピュータにインストールされていなければなりません。また、きちんと機能させるためには、ウェブブラウザの設定を調整する必要もあります。

ウィンドウズ版Internet Explorer (IE) では、デフォルトのラテン文字用フォントはTimes New Romanですが、このフォントには特殊文字範囲の字形はあまり多く含まれていません。そのため、IEを使って特殊文字をきちんと表示させるためには、特殊文字の字形を多く持つフォントを使用するようにブラウザを設定する必要があります。これには例えば、Windows XPに付属するLucida Sans Unicode、フリーで入手できるDejaVu SansTITUS CyberbitGNU Unifont、あるいはMicrosoft Officeに付随するArial Unicode MSなどがあります。

あるいは、スタイルシートを使ってTimes New Romanに字形がないコード(例えばハワイ語の‘okina)を指定し、これによってブラウザにこういった特殊文字をきちんと表示できるフォントを捜させることもできます。

Mozilla FirefoxKonquerorOperaSafariなど最近のブラウザのほとんどでは、特別な設定なしに特殊文字がきちんと表示されます。合字(リガチャ)形の文字をよりきれいに(かつ正しく)表示するためには、レンダリングエンジンをインストールするとよいでしょう。

HTMLを使った表、チャート、またはボックス内でユニコードフォントにある特殊文字を表示するためには、TRタグ(またはTDタグ、ただしTDタグごとに使うよりTRタグに使う方が便利)中に class="Unicode" を指定します。wikiテーブルでは(TR と等価の) "|-"の後にいれてください(例: |- class="Unicode"のように)。

特殊文字を個別に表示する時には、 {{Unicode|char}} のテンプレートが使用できます(英語版ウィキペディア)。charのところには、10進法または16進法の数値文字参照値が入ります。Unicode特殊文字をたくさん使用する段落では、<p class="Unicode"> ... </p> または <span class="Unicode"> ... </span> も使えます。

class="Unicode"は広いレンジのUnicodeブロックにあるいろいろな文字を混在表示させる時に、ウェブページ、HTMLまたはwikiタグに使えます。表示に必要な特殊文字のUnicodeブロックの範囲がラテン文字系に限られているのであれば、class="latinx"を使うことができます。特定分野の特殊文字用には、国際音声記号のためには、class="IPA"を、ポリトニック・ギリシア語にはclass="polytonic"を使うことができます。

ヒエログリフ[edit]

このコードはサーバ上の画像を使うため、ブラウザの機能に依存しません。ヒエログリフはUnicodeを使っても表現できますが、対応しているブラウザは皆無に等しいでしょう。

特別文字を含むテキストへのリンク[edit]

多くの利用者は、設定でリンクに下線をつけるようにしていますが、特殊文字にリンクするときに、この下線のために誤読が起きることがあります。

例えば、+ − < > ⊂ ⊃へリンクすると + < > となりますが、設定によっては ± = ≤ ≥ ⊆ ⊇ に見えてしまうかもしれません。このような場合は、次のように、リンクを別にするとよいでしょう。

複数の文字にリンクする時は混乱は若干起こりにくいようです。例えば、x > 3といった具合です。

Altキーコード[edit]

  Alt codesWindows Alt keycodesも参照。

10進法の数字文字参照で256より値を持つ特殊文字の多くは、キーボードでAlt + Decimalキーを使って入力できます。

例えば、é(鋭アクセントをもつ小文字のe、HTML実体参照コードは"&eacute;")は Alt+130 を押すことで入力できます。この時、最初に"Alt"キーを押し、キーを押し下げたまま、数字キーの1、3、0を続けてタイプします。

しかし、例えば λ (小文字のラムダ)はこの方法では入力できません。この方法で入力しようとすると、"╗" または "»" が出力されてしまいます。

Windows OSのエディタである「ワードパッド」では、256以上の10進法数字文字参照値を受け付けますので、これを使用して特殊文字やUnicode文字を表示させ、必要なところにコピー・ペーストすることができます。

256以上の10進法数字文字参照値の特殊文字を正しく表示させるためには、16進法数字文字参照値をまず入力し、Alt+X キーを押します。これを行うには、まず、ワードパッドやWordなどの編集アプリケーションを起動します(Internet Explorerやノートパッドなどではできません)。例えば、小文字のラムダなら、その16進法数値文字参照値である 3BB を入力し、 Alt+X を押します。すると、 3BBλ に置換されます。もう一度 Alt+X キーを押すと、 λ がもとの16進法数字文字参照値 3BB に再変換されます。そのあとは、お望みのところにコピー・ペーストするだけです。

関連項目[edit]

外部リンク[edit]

メディアウィキ・ユーザーズガイド - ヘルプ・ページ全部

一般的な利用法: 表示 | 検索 | URL | 名前空間 | ページ名 | セクション | リンク | リンク元 | パイプ付きリンク | 言語間リンク | リダイレクト | 変数 | カテゴリ | 画像ページ | 特別ページ
ログイン及びユーザー設定: ログイン | オプション | 外装の詳細設定
起稿・編集: ページの編集 | 新規ページの作成 | 画像/ファイル | 特殊文字 | 数式の書き方 | 表の作り方 | EasyTimeline | テンプレート | リダイレクト | ページの移動 | 編集用ショートカット | トークページ | 公開前のテスト | Help/ja 関連ページの更新状況
改定追跡: 最近更新したページ | 拡張された最近更新したページ | リンク先の更新状況 | ウォッチリスト | 差分 | 履歴 | 要約欄 | ユーザの投稿記録 | 細部の編集 | 編集の巡回

他プロジェクト: Wikibooks | Wikicommons | Wikinews | Wikipedia | Wikiquote | Wikisource | Wiktionary - このテンプレートを編集

Other languages: