Да, возможно, что строка может быть UTF-8; однако значение $ HOME должно быть допустимой строкой UTF-8, и строка будет содержать только полные действительные символы UTF-8. Обратите внимание, что UTF-8 просто использует большинство (но не все; оно пропускает 0xC0, 0xC1, 0xF5..0xFF) из возможных 8-битных значений символов. Это означает, что вам не нужно беспокоиться об этом, если вы не хотите. В частности, UTF-8 использует только нулевой байт для обозначения U + 0000, что эквивалентно ASCII NUL или '\0'
и кодируется одним байтом (значение 0).
Вывод не зависит от платформы; разные системы могут усложнить создание домашних каталогов, для которых требуются символы не ASCII UTF-8.
См. Также: SO 164430