Добрый день.
Установлено:
- MS SQL 2000 на отдельной машине
- Кодировка стоит Cyrillic_General_CI_AS
-------------------------------------
- на основной стоит Joomla 1.5.20
- Apache 2.0
- PHP 5.2.3
- Windows Server 2003 R2
--------------------------------------
Проблема:
Написал обычный php-скрипт:
<?php
$db = mssql_pconnect("SQLDB", "sqlread", "sqlread2011");
if (!$db)
{
echo "Error #1: Отсутствует подключение";
exit;
};
$text = "Абитуриенты";
mssql_select_db ($text, $db);
$query2 = "select * from RTA_Ж_ФТД;";
$result_list = mssql_query($query2, $db);
$num_results = mssql_num_rows($result_list) ;
for ($i=0; $i<6; $i++)
{
$row = mssql_fetch_array($result_list);
$date = stripslashes($row["ФИО"]);
echo $date."<br>";
}
mssql_close($db);
?>
При сохранении скрипта в файле с кодировкой windows-1251, скрипт работает.
Но так как Joomla работает с кодировкой utf-8, то при сохранении файла с кодировкой utf-8 скрипт выводит кучу ошибок, связанных с отправкой данных в неправильной кодировке.
Изменив скрипт на:
<?php
$db = mssql_pconnect("SQLDB", "sqlread", "sqlread2011");
if (!$db)
{
echo "Error #1: ";
exit;
};
mssql_query("/*!40101 SET NAMES 'win1251' */") or die("Error: ".mssql_error());
$text = "Абитуриенты";
mssql_select_db ($text, $db);
$query2 = "select * from RTA_Ж_ФТД;";
$result_list = mssql_query($query2,$db);
$num_results = mssql_num_rows($result_list) ;
for ($i=0; $i<6; $i++)
{
$row = mssql_fetch_array($result_list);
$date = stripslashes($row["ФИО"]);
echo $date."<br>";
}
mssql_close($db);
?>
и разместив его в виде модуля Joomla, скрипт начал работать, но возвращаемые данные - квадратики вместо букв и без ошибок (т.е. подключение и выборка сработали).
Вопрос.Как мне преобразовывать кодировку?
Все поля "Абитуриент" и "ФИО" должны быть на кириллице.
Пробовал так:
for ($i=0; $i<6; $i++)
{
$row = mssql_fetch_array($result_list);
$date = stripslashes($row["ФИО"]);
$date = iconv("utf8", "cp1252", $date);
echo $date."<br>";
}
Страница Joomla вообще не открывается, изначально выдаёт ошибку:
Warning: mssql_pconnect() [function.mssql-pconnect]: Unable to connect to server: SQLDB
PS: Вводил текст в декодер (
http://web.artlebedev.ru/tools/decoder/) - получалась кодировка cp1252, но её использование результатов не принесло.