查看源码 字符集和源文件编码
字符集
Erlang 标记的语法允许使用完整的 ISO-8859-1 (Latin-1) 字符集。 这在以下方面很明显:
- 所有 Latin-1 可打印字符都可以使用,并且无需转义反斜杠约定即可显示。
- 未加引号的原子和变量可以使用所有 Latin-1 字母。
八进制 | 十进制 | 类别 | |
---|---|---|---|
200 - 237 | 128 - 159 | 控制字符 | |
240 - 277 | 160 - 191 | - ¿ | 标点符号 |
300 - 326 | 192 - 214 | À - Ö | 大写字母 |
327 | 215 | × | 标点符号 |
330 - 336 | 216 - 222 | Ø - Þ | 大写字母 |
337 - 366 | 223 - 246 | ß - ö | 小写字母 |
367 | 247 | ÷ | 标点符号 |
370 - 377 | 248 - 255 | ø - ÿ | 小写字母 |
表:字符类别
以下标记也允许使用 Latin-1 范围之外的 Unicode 字符:
- 字符串字面量。示例:
"√π"
- 字符字面量。示例:
$∑
- 代码中的注释。
- 带引号的原子。示例:
'μs'
- 函数名称。示例:
's_to_μs'(S) -> S * 1_000_000.
用作模块名称、应用程序名称和节点名称的原子限制在 Latin-1 范围内。
变更
Erlang/OTP R16B 中引入了对字符串字面量、字符字面量和注释中 Unicode 的支持。Erlang/OTP 20 中引入了对原子和函数名称中 Unicode 的支持。
源文件编码
Erlang 源文件 encoding
通过源文件前两行中的一条注释来选择。与正则表达式 coding\s*[:=]\s*([-a-zA-Z0-9])+
匹配的第一个字符串选择编码。如果匹配的字符串是无效的编码,则会被忽略。有效的编码是 Latin-1
和 UTF-8
,其中字符的大小写可以自由选择。
如果没有有效的 coding
注释,则默认的 Erlang 源文件编码为 UTF-8。
两个示例,都选择 Latin-1 作为源文件编码
%% For this file we have chosen encoding = Latin-1
%% -*- coding: latin-1 -*-
变更
Erlang 源文件的默认编码在 Erlang/OTP 17.0 中从 Latin-1 更改为 UTF-8。