С# datatable тип данных в UTF32

У меня сложная проблема. В настоящее время я получаю таблицу данных из SQL, которая имеет EM-DASH и другие специальные символы, которые таблица данных не поддерживает, если только тип не находится в UTF32. Есть ли способ преобразовать тип данных из строки в UTF32?

Существует функция FillDataTable, которая считывает запрос и заполняет таблицу из SQL, обратите внимание, что все столбцы имеют строковый формат. Вот что я сделал до сих пор:

var dt = FillDataTable(query).Copy();
DataTable dtClone = table.Clone();
dtClone.Columns[0].DataType = typeof(System.Text.UTF32Encoding);
dtClone.Columns[1].DataType = typeof(System.Text.UTF32Encoding);
foreach (DataRow r in dt.Rows)
dtClone.ImportRow(r);

Однако это не работает. Есть ли способ сделать это, чтобы он держал строку в курсе? В противном случае тире становится скрытым символом, поскольку он использует UTF8.


person civic.sir    schedule 23.06.2016    source источник
comment
Я не понимаю вашу последнюю фразу. Em-dash (U+2014) легко представить в UTF-8 (все символы Unicode) и даже в BMP. Что точно вы наблюдаете?   -  person Jon Skeet    schedule 23.06.2016
comment
распределение по странам по четырем ключевым факторам. Вот как это происходит, когда предполагается наличие четырех ключевых факторов – распределение по странам.   -  person civic.sir    schedule 23.06.2016
comment
И как именно вы это определяете? Вы, например, проверили строку в отладчике? Я не понимаю, почему вы думаете, что использование другой кодировки поможет.   -  person Jon Skeet    schedule 23.06.2016
comment
Да, так что в этой строке есть специальное кодирование, потому что, когда я беру данные и копирую в Excel, например, символ (который не виден) появляется как перевернутый вопросительный знак. Я считаю, что если тип даты таблицы данных был UTF-32, это должно решить проблему. Я предполагаю, что он переключает символ с исходного на специальный - когда я пытаюсь выполнить поиск по этому столбцу с той же строкой, он не находит его ... мне придется использовать перевернутый вопросительный знак - это немного сбивает с толку, чтобы объяснить, дайте мне знать, если вы все еще в замешательстве.   -  person civic.sir    schedule 23.06.2016
comment
Да, я очень смущен тем, как вы думаете, где UTF-32 входит в это ... и я определенно не стал бы полагаться на то, что происходит, когда вы вставляете его в Excel, как на хороший показатель того, что происходит. Вы должны внимательно посмотреть на значение в отладчике.   -  person Jon Skeet    schedule 23.06.2016
comment
Ммм.. Достаточно честно. Вот новый вопрос о столбце 1 SQL, в котором есть факторы поля — страна, однако, когда я перемещаю этот столбец 1 в таблицу данных в С#, в консоли отладчика появляется такая страна факторов, как я могу это исправить?   -  person civic.sir    schedule 23.06.2016
comment
Что ж, начните с того, что вставьте это в вопрос, а затем подробно опишите, что точно вы имеете в виду под этим. Также посмотрите, видите ли вы такое же поведение при чтении значения с помощью SqlDataReader.   -  person Jon Skeet    schedule 23.06.2016
comment
размещенный вопрос: stackoverflow.com/questions/38054668/ спасибо   -  person civic.sir    schedule 27.06.2016
comment
Почему вы задали новый вопрос, а не отредактировали существующий? Я отмечаю, что новый вопрос по-прежнему не объясняет, как вы просматриваете данные...   -  person Jon Skeet    schedule 27.06.2016
comment
о боже, лол .. я думал, ты хочешь, чтобы я спросил еще один. В основном данные будут храниться в DataSet (это общая библиотека dll в этом проекте), поэтому то, как они используют набор данных, зависит от каждого проекта, который использует эту dll. т.е. иногда он используется для записи в excel (дамп данных), иногда используется для сравнения, есть ли в этой таблице определенная строка в наборе данных. Вытяните эти строки и запишите в excel/другую таблицу данных, которая снова загружается в sql и т. д.   -  person civic.sir    schedule 27.06.2016
comment
Забудьте Эксель. На данный момент вы должны попытаться максимально сузить проблему и подробно объяснить, как вы ее диагностируете, в самом вопросе, а не в комментариях.   -  person Jon Skeet    schedule 27.06.2016
comment
обновил как смог. Я думаю, что ни у кого нет решения этой проблемы :(   -  person civic.sir    schedule 27.06.2016
comment
Я не верю, что это лучшее, на что ты способен, правда. Вы до сих пор не сказали в вопросе, как вы смотрите на результаты, или где, по вашему мнению, появляется UTF-32, или какой точный тип данных находится на стороне сервера (с сопоставлением и т. д.). Но я согласен, что без дополнительной информации маловероятно, что вы сможете получить дополнительную помощь.   -  person Jon Skeet    schedule 27.06.2016