Интерфейс и описание UnicodeEncoding
могут быть улучшены в отношении обработки метки порядка байтов. UnicodeEncoding
имеет атрибут метка порядка байтов , но единственным методом (кроме Equals
и GetHashCode
), использующим его, является GetPreamble
. Все другие методы и, в частности, основной метод GetBytes
не делают.
Идея состоит в том, чтобы гарантировать, что метка порядка байтов будет только когда-либо записана в начале файла. UnicodeEncoding
не знает контекста. Поэтому вызывающий может добавить преамбулу, если необходимо (ie. Знак порядка байтов).
Исходя из этой концепции, WebClient.UploadString
не может предполагать, что он загружает файл. Это может быть какой-то другой контент Unicode. Так что это не добавляет преамбулу.
Вы должны будете добавить преамбулу самостоятельно. UnicodeEncoding.GetPreamble
вернет его.