문자열이 바이너리에서 인코딩되는 방식을 잘 알고 있어야합니다. 코드에서 < < "StringLiteral">>을 수행 할 때 코드 포인트 목록의 이진 직렬화라는 사실을 알고 있어야합니다. Erlang 컴파일러는 코드를 ISO-8859-1 문자로 읽습니다. 따라서 Latin-1 문자 만 사용하고 일관성있게 작성한다면 괜찮을 것입니다. 그러나 이것은 국제화에 그리 친숙하지 않습니다.
오늘날 대부분의 응용 프로그램 소프트웨어는 유니 코드 인코딩을 선호합니다. UTF-8은 첫 번째 128 코드 포인트에 대해서는 < < "StringLiteral">>과 호환되지만 두 번째 코드 포인트에는 해당하지 않으므로주의하십시오. 코드에 < < "StrïngLïteral">>을 사용하면 UTF-8로 인코딩 된 웹 응용 프로그램에 표시되는 내용에 놀랄 것입니다.
< < "StrïngLterteral"/ utf8 >>의 형태로 바이너리 지원을위한 EEP 제안이 있었지만 이것이 마무리 된 것으로 생각하지 않습니다.
스플릿 할 IS0-8859-1 바이트가 포함 된 멀티 바이트 문자가 있으면 binary : split/2 함수가 예기치 않은 결과를 UTF-8로 가질 수 있습니다.
UTF-16은 더 효율적으로 구문 분석 될 수 있고 32 비트 문자가 없다고 가정하거나 가정 할 경우 인덱스로 쉽게 분할 될 수 있기 때문에 UTF-16을 사용하는 것이 더 좋은 인코딩이라고 주장합니다.
unicode module은 사용해야하지만 리터럴을 사용할 때는주의해야합니다.