Ответ 1
Вы не можете определить кодировку в YAML. Но в этом также нет необходимости, поскольку кодирование выполняется на уровне файлов и является прозрачным для YAML и его синтаксического анализа. При написании документа YAML это все, что вам нужно запомнить.
На уровне файлов YAML 1.1 поддерживает UTF-8 и UTF-16, но не UTF-32. Полная информация о спецификации 1.1:
Все символы [...] являются кодовыми точками Unicode. Каждая такая кодовая точка записывается в виде одного или нескольких октетов в зависимости от используемой кодировки символов. Обратите внимание, что в UTF-16 символы выше #xFFFF записываются в виде четырех октетов с использованием суррогатной пары. Процессор YAML должен поддерживать кодировки символов UTF-16 и UTF-8. Если поток символов не начинается с метки порядка байтов (#FEFF), кодировка символов должна быть UTF-8. В противном случае это должен быть либо UTF-8, UTF-16 LE или UTF-16 BE, как обозначено меткой порядка байтов. При выводе рекомендуется, чтобы метка порядка следования байтов использовалась только для кодировки символов UTF-16. Обратите внимание, что кодировка UTF-32 явно не поддерживается.
Для YAML 1.2 также поддерживается UTF-32.