Вы должны сделать следующее, чтобы заставить его работать:
{html, "доуч"++ binary_to_list(unicode:characters_to_binary([1076,1086,1091,1095]))}
Почему это не удается?
Если немного подробнее, то list_to_binary
не удаетсяпотому что он пытается преобразовать каждый элемент в списке в байт, что он не может сделать, потому что каждое значение в [1076,1086,1091,1095]
будет занимать больше байта.
Что происходит?
[1076,1086,1091,1095]
- это чисто строковое представление в юникоде "доуч"
.Yaws пытается преобразовать строку (список) в двоичную строку, используя list_to_binary
, и, таким образом, завершается неудачей.Поскольку каждый символ юникода может занимать более одного байта, нам нужно преобразовать его в байтовый массив.Это можно сделать с помощью:
unicode:characters_to_binary([1076,1086,1091,1095]).
<<208,180,208,190,209,131,209,135>>
Теперь его можно безопасно конвертировать между списком и двоичными представлениями.См. Unicode для получения более подробной информации.
Вы можете преобразовать обратно в Unicode следующим образом:
unicode:characters_to_list(<<208,180,208,190,209,131,209,135>>).
[1076,1086,1091,1095]