LINUX.ORG.RU

Сообщения werdenholf

 

PHP+UnixODBC+FreeTDS+CentOS проблема с кодировкой

Добрый день!

Необходимо реализовать поиск с выводом результатов с помощью хранимой процедуры. На сервере установлена БД mssql, которая мне не подвластна. Подключение и использование процедуры реализовано с помощью ODBC, сам весь код написан на PHP.

Вычитала, что для реализации в CentOS 7 необходимо установить FreeTDS & UnixODBC и настроить их. Настроить - настроила, однако при выводе результатов поиска русские буквы выводятся в виде знаков вопроса ??????????? , также запрос не понимает ввод русских символов и не выдает результат по ним.

Я прочитала много информации в интернете. В настройках апача указала AddDefaultCherset UTF8, настроила локаль как ru_RU.UTF8.

В файле freetds:

  • [freetds]
  • host = *********
  • port = *******
  • tds version = 7.0
  • user = UID
  • password = PWD
  • client charset = UTF8

Команда tsql выводит корректные данные с нормальными символами, и также корректно понимает запрос русскими символами

Информация о freetds

  • Version: freetds v0.95.81
  • freetds.conf directory: /etc
  • MS db-lib source compatibility: yes
  • Sybase binary compatibility: yes
  • Thread safety: yes
  • iconv library: yes
  • TDS version: 4.2
  • iODBC: no
  • unixodbc: yes
  • SSPI «trusted» logins: no
  • Kerberos: yes
  • OpenSSL: no
  • GnuTLS: yes

И при подключении tsql

  • locale is «ru_RU.UTF8»
  • locale charset is «UTF-8»
  • using default charset «UTF8»

В файле odbcinst прописала необходимые драйвера и в файле odbc к ним корректно подключилась. Команда isql также выводит корректные данные с нормальными символами, и также корректно понимает запрос русскими символами. То есть команды работают и понимают и выводят русские символы.

Однако, на сайте выводятся знаки вопроса. Я пробовала iconv, переделка различных кодировок (с utf-16 на utf-8 выводятся китайские символы, а с некоторыми кодировками текст вообще пропадает). В header также передавала информацию.

Очень долго уже сижу с проблемой кодировки, где моя ошибка и что необходимо исправить для вывода корректных русских символов?

 , ,

werdenholf
()

RSS подписка на новые темы