Чтение CSV - файла с китайскими иероглифами с помощью OLEDB
Привет, то, что я сейчас делаю, - это импортирую csv-файл с китайскими иероглифами с помощью OLEDB и записываю его(OledbAdapter.Fill) в datatable. Когда я читаю информацию из datatable, моя ожидаемая информация становится ÁõÈý½ã
Что я сделал:
1 - Установите набор символов базы данных и таблиц в "utf8 -- UTF-8 Unicode", а параметры сортировки - "utf8_general_ci".
2 - в web.config добавьте затем информацию ниже в теге "глобализация" ниже в теге "system.web" .:
requestencoding="utf-8" responseencoding="utf-8" fileencoding="utf-8" culture=" " uiculture=""
3 - в html-теге <head> Я включаю эту строку:
<META http-equiv="Content-Type" content="text/html; charset=UTF-8" />
4 - мой код csvParses:
string full = Path.GetFullPath(path); string file = Path.GetFileName(full); string dir = Path.GetDirectoryName(full); string header = isHeader ? "Yes" : "No"; string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"" + dir + "\\\";Extended Properties=\"text;HDR=" + header + ";FMT=Delimited;CHARSET=utf8\""; string query = "SELECT * FROM " + file; DataTable dTable = new DataTable(); OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, connString); dAdapter.Fill(dTable);
Когда я получаю информацию из этой таблицы dtable, китайские иероглифы становятся ÁõÈý½ã. Могу я узнать, какие вещи я могу упустить? Ваша помощь очень ценится, заранее спасибо.:)
Sergey Alexandrovich Kryukov
Я надеюсь, что "китайский" означает Unicode, не так ли? Тоже UTF-8? С Бом или без него?
--СА
Member 8337007
Спасибо за ответ:)
да, это Unicode, и это тоже UTF-8. Я не уверен насчет спецификации. Как проверить, есть ли мой файл с/без спецификации?
На самом деле я получил эту проблему, когда я запускаю свой код на сервере. Он работает, как и ожидалось(показывает правильные китайские иероглифы) в моем localhost.
Я что - то упускаю?
Mehdi Gholam
Вы проверили правильность вашего исходного файла ie имеет китайские иероглифы?
Member 8337007
Спасибо за ответ:)
Да, я проверил свой исходный файл, и он правильный (с китайскими черактерами).
На самом деле я получил эту проблему, когда я запускаю свой код на сервере. Он работает, как и ожидалось(показывает правильные китайские иероглифы) в моем localhost.
Я что - то упускаю?
Mehdi Gholam
Проверьте также языковые настройки ваших серверов, это может быть английский язык.
Member 8337007
Для "языка для программ, отличных от Unicode", выбран "английский (Соединенные Штаты)"; были выбраны все опции для "таблиц преобразования кодовых страниц"; для "дополнительной языковой поддержки" были установлены файлы для сложных скриптовых и правосторонних языков, а также восточноазиатских языков.
Я думаю, что системные настройки локали сервера находятся на английском языке (извините, я не очень хорошо разбираюсь в технических вопросах)