外部文字コードの使用

Mathematica で特殊文字や記号を入力するには,英語名で参照する方法と,文字コードで参照する方法が使える.例えば, を入力するには,をタイプする.Mathematica から文字列等をファイルに落とすときも,特に指定がなければ,これら2つの書式のどちらかが使われる.

特殊文字と記号によっては,Mathematica 内部で使う専用文字コード規格ではなく,従来規格の文字コードで指定した方が手っ取り早いときもあるだろう.つまり,Mathematica デフォルトの英語名や専用16進数文字コードを使うのではなく,オペレーティングシステムの環境およびフォント別に定義してある外部文字コード規格を使うということである.

$CharacterEncoding=Noneすべての特殊文字に対して印刷可能なASCII名を使う
$CharacterEncoding="name"name により指定された外部文字コード規格を使う
$SystemCharacterEncoding使っているコンピュータシステムのデフォルトの外部文字コード

外部文字コード規格の使用

外部文字コードとは,例えば,キーボードのキーを押したときにオペレーティングシステムから送られてくる生の文字コードのことである.コードの値はそのときに使われている文字コード規格による.

ノートブック用フロントエンドを使っている場合,使っているフォントにより自動的に適切な文字規格が選択されるのでユーザが設定変更する必要はない.テキスト用フロントエンドを使っている場合やファイル処理またはパイプ処理をしている場合,自動設定は行われないので必要ならば$CharacterEncodingを使い設定を手動で変更する.

$CharacterEncodingの機能で適当な規格を指定しておけば,文字コードに依存するテキストエディタやオペレーティングシステムの直接生成する生のテキスト等が直接処理できるようになる.

Mathematica 専用の文字コード規格で特殊文字と記号を記述してあれば,オペレーティングシステム環境に関係なく Mathematica で読む限りは確実に文字と記号を再現できる.外部規格を使う場合はこの限りではない.

"PrintableASCII"印字可能なASCII文字
"ASCII"制御コードも含むASCII
"ISOLatin1"西ヨーロッパ言語の文字
"ISOLatin2"中東部ヨーロッパ言語の文字
"ISOLatin3"第1ヨーロッパ言語文字補助セット(カタロニア語,トルコ語等)
"ISOLatin4"第2ヨーロッパ言語文字補助セット(エストニア語,グリーンランド語等)
"ISOLatinCyrillic"英語・キリル文字セット
"AdobeStandard"PostScriptフォント用Adobe文字コード規格
"MacintoshRoman"Macintoshローマンフォント用文字コード規格
"WindowsANSI"Windowsフォント用文字コード規格
"Symbol"記号フォント用文字コード規格
"ZapfDingbats"Zapf dingbats文字コード規格
"ShiftJIS"シフトJIS日本語文字コード規格(8,16ビットコード混在)
"EUC"拡張Unix日本語文字コード規格(8,16ビットコード混在)
"UTF-8"Unicode規格(UTF-8形式)
"Unicode"16ビットUnicode規格(ビットパターン)

Mathematica で扱える外部文字コード規格の一覧

どの外部文字コード規格が適切かといった指定はオペレーティングシステムの環境設定や使用言語に応じて Mathematica 内部で設定済みである.Mathematica ノートブックインターフェースとコンピュータ上のユーザインターフェース環境との間で文字をコピーするには,通常その環境にネイティブの文字コード規格が使われる.ネイティブのコード規格に含まれていない Mathematica 文字は Mathematica 専用規格の英語名もしくは16進数コードで記述される.

Mathematica カーネルは,テキストファイルを書いたり読んだりするときに,指定されたどのような文字コード規格も使うことができる.デフォルトでは,PutPutAppendにより,Mathematica 言語ファイルを1つのシステムから別のシステムへと確実に移植するためのASCII表現が生成される.

ファイルに文字列を書き出してみる.
In[1]:=
Click for copyable input
特殊文字は,デフォルトで英語名または明示的な16進数コードで記述される.
In[2]:=
Click for copyable input
Out[2]=

Mathematica のサポートする外部文字コード規格には1バイト(8ビット長)と2バイト(16ビット長)がある.等の規格は1バイト文字だけで構成されるが,は2バイト文字が主体になっている.

Mathematica のサポートする外部文字コード規格において,そのほとんどはASCII規格を取り込んだ形で定義されている.したがって,それらの外部規格を使う限りは,文字列を使った特殊文字の指定が有効である.

ASCII規格に準拠していない文字コード規格には,例えば,で指定される記号文字コード規格がある.この文字コード規格では,ASCIIアルファベットのはギリシャ文字 になり, になる.

英語アルファベットのいくつかをASCIIコード列挙する.
In[3]:=
Click for copyable input
Out[3]=
同じ文字コードを規格で見ると,ギリシャ文字として扱われていることが分かる.
In[4]:=
Click for copyable input
Out[4]=
ToCharacterCode["string"]文字列の各文字をMathematica 標準規格の文字コードで列挙する
ToCharacterCode["string","encoding"]文字列の各文字を指定外部規格の文字コードで列挙する
FromCharacterCode[{n1,n2,...}]リスト入力した文字コードに対応する Mathematica 標準規格の文字を生成する
FromCharacterCode[{n1,n2,...},"encoding"]
リスト入力した文字コードに対応する外部規格の文字を生成する

内部および外部文字コード規格を使った文字と文字コードの変換

文字や記号に対応した Mathematica 内部規格の文字コードを列挙させる.
In[5]:=
Click for copyable input
Out[5]=
Macintoshの文字コードと比べる.
In[6]:=
Click for copyable input
Out[6]=
Windowsの文字コードはどうであろうか.Windowsのローマン規格には\[Pi]はマップされていないことが分かる.
In[7]:=
Click for copyable input
Out[7]=

Mathematica 内部で使う文字規格はUnicodeに準拠している.ただ,外部とのやり取りでは,通常,ASCIIコードだけが使われる.特殊文字や記号も, の書式に基づいたASCII記述が使われる.また,をあらかじめ指定しておけば,ファイルをUnicode準拠のテキスト(2バイト文字)として読み込ませることは可能である.

New to Mathematica? Find your learning path »
Have a question? Ask support »