2015-04-27 4 views
1

Я создал программу, которая использует файл excel (.xls) в качестве записи базы данных. Я могу запросить его и получить результаты хорошо, вся программа работает очень хорошо, за исключением того, что она падает, когда дело доходит до любых символов в Юникоде. После того, как скрипт закончен, он записывает результаты в файл с разделителями с табуляцией, но я получаю вопросительные знаки (?) Вместо некоторых символов, он также показывает такие вещи, как x92 вместо апострофов (').Юникодовые символы отображаются как вопросительные знаки с ODBC

Я пробовал много вещей, таких как изменение <meta charset="UTF-8"> от iso-8859-1, и вот тогда появился x92, хотя я не уверен в этом.

Я уверен, что проблема связана с тем, как ODBC извлекает данные. Исходный источник данных прекрасен, все символы Юникода и т. Д. Выглядят отлично, но после того, как я извлекаю данные, я эхо на экран перед тем, как делать что-либо еще с данными, и я могу увидеть вопросительные знаки, появляющиеся там.

Я в настоящее время подключают, чтобы преуспеть с этим кодом

$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;Client_CSet=UTF-8;DefaultDir=$excelDir;" , "Server_CSet=Windows-1251", ""); 

Я добавил "Client_CSet = UTF-8"; и «Server_CSet = Windows-1251», который я нашел из многих поисковых запросов Google, которые я попытался исправить, но это ничего не изменило. Я полностью в тупике.

ответ

0

Как хранить значение в базе данных? если значение базы данных содержит вопросительные знаки вместо символов Юникода, вы должны изменить сортировку этой таблицы, а также сопоставление этого поля.

+0

Я записываю данные непосредственно в текстовый файл с разделителями табуляции, используя fwrite(); – Suxorixorage

Смежные вопросы