文字コード

ToCharacterCode["string"]文字列の各文字に対応する文字コードを返す
FromCharacterCode[n]文字コードから文字を生成する
FromCharacterCode[{n1,n2,}]文字コードから複数文字(文字列)を生成する

文字と文字コードの変換法

文字列を構成するテキスト文字や記号には,Wolfram言語内部で固有の文字コードが割り当てられる.内部ではこの文字コードをもとに文字列の操作処理が行われる.

文字列を構成する文字成分のそれぞれの文字コードを列挙させる.
In[1]:=
Click for copyable input
Out[1]=
FromCharacterCodeからもとの文字列を再構成する.
In[2]:=
Click for copyable input
Out[2]=
特殊文字や記号にも固有の文字コードが割り当てられている.いくつかの例を見てみる.
In[3]:=
Click for copyable input
Out[3]=
CharacterRange["c1","c2"]連続する文字コードの文字を順番に生成し列挙する

連番文字の生成

英語の小文字アルファベットの連番部分を列挙させる.
In[4]:=
Click for copyable input
Out[4]=
ギリシャ語のアルファベットを列挙させる.
In[5]:=
Click for copyable input
Out[5]=

特殊文字や記号の多くはの形の英語読みの名前が割り当てられているので,英語名を使っていつでも参照できる.文字コードをわざわざ使う必要はない.

文字コードの直接参照で,特殊文字と記号を使い文字列を作る.
In[6]:=
Click for copyable input
Out[6]=
使った特殊文字に対応する英語名を確認してみる.上の例の文字コードの代りに,これらの英語名を入力に使ってもよい.
In[7]:=
Click for copyable input
Out[7]//FullForm=

Wolfram言語では,数学で使う標準的な特殊文字や記号とヨーロッパの標準的な言語の文字セットにも登録済みの名前が用意されている.日本語文字セットもサポートされているが,3,000以上の文字があるため明示的な名前は割り当てられていない.このため,漢字等の参照には文字コードを使う必要がある.

漢字を使った文字列の入力例.
In[8]:=
Click for copyable input
Out[8]=
FullFormでは,これらの文字は標準文字コードで参照される.標準文字コードは16進法で記述されることに注意.
In[9]:=
Click for copyable input
Out[9]//FullForm=

ノートブック用フロントエンドにおいて特定のフォントで文字を入力した場合,文字コードが自動的に使われるようになっている.

しかし,用途によっては,直接文字コードを入力した方が便利なときがある.

.nn16進法表記の文字(1バイト文字,コード nn
\:nnnn16進法表記の文字(2バイト文字,コード nnnn

文字コード参照による文字指定

文字コードが256より小さい1バイトのものであれば の文字指定の書式が使える.それ以上の値を持つ2バイトの文字コードは書式 を使わなければならない.いずれの書式を使うにしても,指定桁数のすべてを入力する必要があり,文字コードの値が小さすぎて上位の桁が空になってしまうときは0を補っておく.

文字列にある文字と記号を16進法の文字コードに変換する.
In[10]:=
Click for copyable input
Out[10]//BaseForm=
文字コードを文字列に変換する. の文字コードにおいて最上位桁の0に注目.
In[11]:=
Click for copyable input
Out[11]=

Wolfram言語の使う文字コードの割当ては,3つのともに互換な標準文字コードの規格に準拠している.その規格とはASCIIとISO Latin1,そして,Unicode規格である.ASCII規格は英語キーボードの文字と記号の文字コード範囲を定義し,また,ISO Latin1規格はヨーロッパの言語で使う特殊文字の範囲を定義する.Unicode規格は前者の規格をさらに一般化し,欧州以外の漢字等の文字セットも定義している.Unicode文字はUTF-16マッピングを使って表される.

0127 (.00.7f)ASCII領域
131 (.01.1f)ASCII制御文字
32126 (.20.7e)ASCII印字可能文字
97122 (.61.7a)英語アルファベット小文字
129255 (.81.ff)ISO Latin1領域
192255 (.c0.ff)ヨーロッパ言語の文字セット
059391 (:0000:e7ff)Unicodeパブリック領域
9131009 (:0391:03f1)
ギリシャ文字セット
1228835839 (:3000:8bff)
中国語,日本語,韓国語の文字セット
84508504 (:2102:2138)
数学記述で使う特殊文字
85928677 (:2190:21e5)
矢印記号
87048945 (:2200:22f1)
数学記述で使う演算記号
6144063487 (:f000:f7ff)
Wolfram言語専用のUnicodeプライベート領域

Wolfram言語の提供する代表的な文字セットと文字コードの対応表

印字可能なASCII文字のすべてを表示する.
In[12]:=
Click for copyable input
Out[12]=
ISO Latin1規格の文字セットを表示する.
In[13]:=
Click for copyable input
Out[13]=
数学で使う特殊文字を列挙させる.空のボックスで表示されている文字は,現行のフォントに含まれていない.
In[14]:=
Click for copyable input
Out[14]=
漢字を拾ってみよう.
In[15]:=
Click for copyable input
Out[15]=