2.字符集和源文件编码 | 2. Character Set and Source File Encoding
2字符集和源文件编码
2.1字符集
Erlang令牌的语法允许使用完整的ISO-8859-1(Latin-1)字符集。这在以下方面是显而易见的:
- 所有的Latin-1可打印字符都可以使用,并且不显示退避反斜线约定。
- 原子和变量可以使用所有拉丁字母。
八进制 | 十进制 | | 类 |
---|---|---|---|
200 - 237 | 128 - 159 | | 控制字符 |
240 - 277 | 160 - 191 | ¿ | 标点符号 |
300 - 326 | 192 - 214 | À - Ö | 大写字母 |
327 | 215 | × | 标点符号 |
330 - 336 | 216 - 222 | Ø - Th | 大写字母 |
337 - 366 | 223 - 246 | ß - ö | 小写字母 |
367 | 247 | ÷ | 标点符号 |
370 - 377 | 248 - 255 | ø - ÿ | 小写字母 |
在Erlang / OTP R16B中,扩展了Erlang令牌的语法来处理Unicode。支持仅限于字符串文字和评论。关于在Erlang源文件中使用Unicode的更多信息可以在下面找到STDLIB's User's Guide
。
从Erlang / OTP 20中,原子和函数名称也允许包含ISO-Latin-1范围之外的Unicode字符。模块名称,应用程序名称和节点名称仍仅限于ISO-Latin-1范围。
2.2源文件编码
Erlang源文件encoding
由源文件的前两行中的一行中的注释选择。匹配正则表达式的第一个字符串coding\s*[:=]\s*([-a-zA-Z0-9])+
选择编码。如果匹配的字符串是无效的编码,它将被忽略。有效编码是Latin-1
和UTF-8
,其中所述字符的情况下,可以自由地选择。
以下示例选择UTF-8作为默认编码:
%% coding: utf-8
另外两个例子,都选择拉丁语作为默认编码:
%% For this file we have chosen encoding = Latin-1
%% -*- coding: latin-1 -*-
自Erlang/OTP 17.0以来,Erlang源文件的默认编码从Latin-1更改为UTF-8。