Erlang 20

2.字符集和源文件编码 | 2. Character Set and Source File Encoding

2字符集和源文件编码

2.1字符集

Erlang令牌的语法允许使用完整的ISO-8859-1(Latin-1)字符集。这在以下方面是显而易见的:

  • 所有的Latin-1可打印字符都可以使用,并且不显示退避反斜线约定。

  • 原子和变量可以使用所有拉丁字母。

八进制十进制
200 - 237128 - 159控制字符
240 - 277160 - 191¿标点符号
300 - 326192 - 214À - Ö大写字母
327215×标点符号
330 - 336216 - 222Ø - Th大写字母
337 - 366223 - 246ß - ö小写字母
367247÷标点符号
370 - 377248 - 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-1UTF-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。