Я видел некоторые ответы в этом посте, и это можно считать законченным базовым знанием, потому что есть несколько подходов в программировании на C # для решения той же проблемы. Единственное, что необходимо учитывать, - это разница между Pure UTF-8 и UTF-8 с BOM .
На прошлой неделе, на моей работе, мне нужно было разработать одну функциональность, которая выводит файлы CSV с BOM и другие CSV с чистым UTF-8 (без BOM), каждый тип кодировки файла CSV будет использоваться различными нестандартизированными API, API читает UTF-8 с спецификацией, а другой API читает без спецификации. Мне нужно изучить ссылки на эту концепцию, читая «В чем разница между UTF-8 и UTF-8 без спецификации? », Обсуждение стека переполнения и эту ссылку в Википедии « Порядок следования байтов », чтобы построить мой подход.
Наконец, мое программирование на C # для обоих типов кодирования UTF-8 (с BOM и pure) должно быть примерно таким, как в следующем примере:
//for UTF-8 with B.O.M., equals shared by Zanoni (at top)
string result = System.Text.Encoding.UTF8.GetString(byteArray);
//for Pure UTF-8 (without B.O.M.)
string result = (new UTF8Encoding(false)).GetString(byteArray);