字符的原始代码

Mathematica 中可以用 等名称或 等十六进制编码来指代特殊字符. 当 Mathematica 输出一个文件时,其默认方式就是使用这些名称或代码.

但有时对一些特殊字符使用原始码很方便,这意味着不使用特殊字符的名称或十六进制编码,而用与计算机系统或字形相应的原始模式去表示这些特殊字符.

$CharacterEncoding=None对所有特殊字符使用可显示的 ASCII 名称
$CharacterEncoding="name"使用由 name 指定的字符的原始代码
$SystemCharacterEncoding特定计算机系统的默认原始字符代码

设置字符的原始码.

当按下一个键或组合键时,计算机的操作系统就将一定位数的模式输送给 Mathematica. 这个模式在 Mathematica 中怎样翻译为一个字符将依赖于所设置的字符编码.

Mathematica 的笔记本前端对所使用的字形将自动设置合适的字符编码. 但在文本界面或通过文件等途径使用 Mathematica 时,就需要明确地设置 $CharacterEncoding.

通过对 $CharacterEncoding 指定一个合适的值,就能使 Mathematica 处理不同编辑器或操作系统所产生的原始文本.

然而应该意识到,Mathematica 中所使用的特殊字符的标准表示形式可以用于不同的计算机系统. 但涉及到原始字符编码的表示式却不能.

"PrintableASCII"仅限于可显示的 ASCII 字符(默认)
"ASCII"包括控制字符的所有 ASCII 字符
"ISOLatin1"常用的西欧语言字符
"ISOLatin2"中欧及东欧语言字符
"ISOLatin3"另外的欧洲语言字符(如卡泰兰、土尔其)
"ISOLatin4"其余的欧洲语言字符(如艾托尼亚、南普斯)
"ISOLatinCyrillic"英语及苏黎士语言字符
"AdobeStandard"Adobe 标准邮电码
"MacintoshRoman"Macintosh 罗马字符编码
"WindowsANSI"Windows 标准字形码
"Symbol"符号字形编码
"ZapfDingbats"Zapf dingbats 字形编码
"ShiftJIS"日语 shift-JIS(8 位与 16 位混用)
"EUC"扩展的 Unix 日语编码(8 位与 16 位混用)
"UTF-8"Unicode 转换格式编码
"Unicode"原始的 16 位 Unicode 模式

Mathematica 所支持的一些原始字符编码.

Mathematica 知道适应于不同计算机系统和不同语言的各种原始字符编码. 当指定了一种编码后,Mathematica 就可以以原始形式给出包含在这个原始编码中任何字符的编码. 但没有包含在这个编码中的字符仍按标准的 Mathematica 全名或十六进制编码给出.

当写入或读入文本文件时,Mathematica 内核可以使用您所指定的任何字符编码. 默认情况下,PutPutAppendMathematica 语言文件从一个系统到另一个的可移植性产生 ASCII 表示法.

给文件 中写入一个字符串.
In[1]:=
Click for copyable input
特殊字符默认地用全名或十六进制数字表示.
In[2]:=
Click for copyable input
Out[2]=

Mathematica 支持八进制和十六进制原始字符编码. 在 编码中,所有字符由包含八进制的模式表示,而在 等编码中,一些字符就涉及到十六进制的编码.

大部分 Mathematica 支持的字符编码都将基本的 ASCII 作为一个子集. 这就可以在这些编码中按照一般方式给出Mathematica 的常用输入,可以用 序列指代特殊字符.

还有一些原始字符编码没有将基本的 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 的标准编码给出了字符的代码,在这种编码中,\[Pi] 没有代码.
In[7]:=
Click for copyable input
Out[7]=

Mathematica 内部使用的字符代码基于Unicode. 但是,作为默认状态,Mathematica 外部总使用 等简单的ASCII序列去代表特殊字符. 通过让 Mathematica 使用原始 字符编码,就可以使 Mathematica 用十六进制 Unicode 形式去读写字符.

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