История изменений
Исправление grem, (текущая версия) :
Не любой массив байт порождает валидный UTF-8.
Не любой массив байт порождает валидный UTF-8.
Именно. Это мне известно.
Тебе пытаются донести, что растишка учитывает этот момент.
Вызовом дополнительной проверки при «конвертации» одно типа в другой.
Я пытаюсь им донести, что go её можно тоже можно вызвать. И то, что переменная хранящая имя файла типа path в rust и типа string в go хранят одинаковую последовательность байтов. Ну да, в rust данная последовательность не преобразуется в строку даже частично (поэтому, видимо, и возвращается none); в go при выводе на экран преобразует то, что может, остальное отображает не даже знаю в виде чего.
Но в обоих случаях отображаемое на экране имя некорректно - корректное отображение невозможно. Какой подход лучше и реализация - дело вкуса.
Несомненно надо сообщать пользователю, что имя файла не может быть отображено корректно. И это можно сделать в обоих подходах.
Что лучше при чтении из файла байтов: отображать некорректно или вообще не отображать? Зависит от желаемой реализации.
В случае повреждения текстового файла я предпочёл бы, чтобы мне показали то, что могут сконвертировать.
Исходная версия grem, :
Не любой массив байт порождает валидный UTF-8.
Не любой массив байт порождает валидный UTF-8.
Именно. Это мне известно.
Тебе пытаются донести, что растишка учитывает этот момент.
Вызовом дополнительной проверки при «конвертации» одно типа в другой.
Я пытаюсь им донести, что go её можно тоже можно вызвать. И то, что переменная хранящая имя файла типа path в rust и типа string в go хранят одинаковую последовательность байтов. Ну да, в rust данная последовательность не преобразуется в строку даже частично (поэтому, видимо, и возвращается none); в go при выводе на экран преобразует то, что может, остальное отображает не даже знаю в виде чего.
Но в обоих случаях отображаемое на экране имя некорректно - корректное отображение невозможно. Какой подход лучше и реализация - дело вкуса.
Несомненно надо сообщать пользователю, что имя файла не может быть отображено корректно. И это можно сделать в обоих подходах.
Что лучше при чтении из файла байтов: отображать некорректно или вообще не отображать? Зависит от желаемой реализации.