Ответ 1
Да, должно быть безопасно использовать один и тот же объект Encoding
, поскольку он предназначен для бездействия - в то время как Encoder
и Decoder
сохраняются в состоянии, сохраняя при необходимости неполные символы и т.д. Я полагаю, вы могли бы написать класс с состоянием Encoding
, но это была бы очень плохая идея. Насколько мне известно, все встроенные реализации кодирования являются безстоящими и потокобезопасными.
Например, свойства Encoding.UTF8
, Encoding.ASCII
etc являются одиночными.