此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.1)

2.7.8 高级专题:字符的原始代码

Mathematica 中可以用 \[Alpha] 等名称或 \:03b1 等十六进制编码来指代 特殊字符,当 Mathematica 输出一个文件时,其默认方式就是使用这些 名称或代码.
但有时对一些特殊字符使用原始码很方便,这意味着不使用特殊字符的名称或 十六进制编码,而用与计算机系统或字形相应的原始模去表示这些特殊字符.

设置字符的原始码

当按下一个键或组合键时,计算机的操作系统就将一定位数的模式输送给 Mathematica. 这个模式在 Mathematica 中怎样翻译为一个字符将依赖于 所设置的字符编码.
Mathematica 的笔记本前端对所使用的字形将自动设置合适的字符 编码. 但在文本界面或通过文件等途径使用 Mathematica 时,就需要明确 地设置 $CharacterEncoding.
通过对 $CharacterEncoding 指定一个合适的值,就能使 Mathematica 处理不同编辑器或操作系统所产生的原始文本.
然而应该意识到,Mathematica 中所使用的特殊字符的标准表示形式可以 用于不同的计算机系统. 但涉及到原始字符编码的表示式却不能.

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

Mathematica 知道适应于不同计算机系统和不同语言的各种原始字符编码. 当指定了一种编码后,Mathematica 就可以以原始形式给出包含在这个原始编码 中任何字符的编码. 但没有包含在这个编码中的字符仍将按标准的 Mathematica 全名或十六进制编码给出.
另外,当指定了一种编码后,包含在这种编码中的任意字符可以通过输入 原始码的形式给出. Mathematica 自动地将字符转化为它的标准内部形式.

给文件 tmp 中写入一个字符串

特殊字符默认地用全名或十六进制数字表示

告诉 Mathematica 使用适应于 Macintosh 罗马字形的原始字符编码

这些特殊字符将能用原始形式写出

当有使用 Macintosh 罗马编码的系统时,才能读这些原始字符

默认 Mathematica 不使用原始编码

仍可以明确指定在一些函数中使用原始编码

Mathematica 支持八进制和十六进制原始字符编码,在 "ISOLatin1" 编码中,所有字符由包含八进制的模式表示,而在 "ShiftJIS" 等 编码中,一些字符就涉及到十六进制的编码.
大部分 Mathematica 支持的字符编码都将基本的ASCII作为 一个子集,这就可以在这些编码中按照一般方式给出 Mathematica 的常用输入, 可以用 \[ 和 \: 序列指代特殊字符.
还有一些原始字符编码没有将基本的 ASCII 作为一个子集. 例如 "Symbol" 在这种编码中,a 和 b 的常用编码用来代表 AlphaBeta.

这里给出了一些英语字母的 ASCII 字符码

"Symbol" 编码中,这些字符码被用来代表希腊字母

不同编码中字符码的处理

这里给出 Mathematica 指定给字符的代码

对同样的字符用 Macintosh 罗马编码指定的代码

这里用 Windows 的标准编码给出了字符的代码,在这种编码中, \[Pi] 没有代码

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